scp
是 Secure Copy 的缩写,在 Linux 系统中用于在本地和远程主机之间或两个远程主机之间安全地传输文件。它是基于 ssh
(Secure Shell)协议的一种命令行工具。
scp
的基本语法格式如下:
scp [选项] 源文件 目标文件
或者用于在两个远程主机之间复制文件的语法为:
scp [选项] 用户@远程主机:源路径 目标路径
如果只需要在本地系统之间复制文件,例如从 /home/user/documents/report.txt
复制到 /home/user/papers/
目录下,命令如下:
scp /home/user/documents/report.txt /home/user/papers/
将文件从本地系统复制到远程主机,例如向 user@remotehost.example.com
主机的 /home/user/reports/
目录下添加 report.txt
文件:
scp /home/user/documents/report.txt user@remotehost.example.com:/home/user/reports/
将文件从一个远程主机复制到另一个远程主机,例如从 sourceuser@remoteserver.example.com
的 /home/sourceuser/papers/
目录下复制 report.txt
文件到 targetuser@targetserver.example.com
的 /home/targetuser/reports/
目录:
scp sourceuser@remoteserver.example.com:/home/sourceuser/papers/report.txt targetuser@targetserver.example.com:/home/targetuser/reports/
-r
递归复制目录内容当需要从本地复制整个目录到远程主机时,使用 -r
选项:
scp -r /path/to/local/directory user@remotehost.example.com:/path/to/remote/directory/
同样适用于远程到远程的复制操作。
-p
保持原始文件的时间戳复制文件的同时保持原始文件的时间戳,使用 -p
选项:
scp -p /home/user/documents/report.txt user@remotehost.example.com:/home/user/reports/
由于 scp
基于 ssh
协议,它提供了强大的安全性。数据在传输过程中会被加密,确保了文件的安全传输。
可以结合其他命令来增强功能或简化操作:
通过标准输出将远程文件的内容复制到本地:
scp user@remotehost.example.com:/home/user/papers/report.txt - > local_copy_of_report.txt
或者将本地文件内容发送到远程主机:
scp report.txt user@remotehost.example.com:/home/user/reports/ < local_file_content.txt
grep
查找过滤使用 scp
从远程主机获取特定信息或进行筛选处理:
ssh user@remotehost.example.com 'cat /path/to/file | grep pattern' > filtered_output.txt
scp
命令提供了一种简单且安全的方式来在本地和远程主机之间传输文件,是 Linux 系统中一个非常实用的工具。通过熟练掌握 scp
的基本用法及其常用选项,用户可以更高效地进行文件管理与共享操作。