Linux 命令之 - scp
命令简介
scp是Secure Copy的缩写,是一个基于SSH的安全远程文件复制工具。它可以在本地和远程主机之间复制文件或目录,并且支持递归复制。
命令语法
1 | scp [options] source_file_or_directory user@host:target_path |
参数说明
命令实例
基本用法
1.从本地复制文件到远程主机
1 | scp local_file.txt user@remote_host:/path/to/target |
上面的命令将本地的local_file.txt文件复制到远程主机的/path/to/target目录中。
2.从远程主机复制文件到本地
1 | scp user@remote_host:/path/to/source/file.txt . |
该命令将从远程主机的/path/to/source/file.txt复制到本地当前目录。
3.递归复制整个目录
1 | scp -r local_directory user@remote_host:/path/to/target |
上面的命令将本地的local_directory目录及其内容递归复制到远程主机的/path/to/target路径下。
4.保留文件元数据
1 | scp -p user@remote_host:/path/to/source/file.txt . |
该命令在复制文件时将保留文件的修改时间、访问时间和模式。
5.压缩传输以加快速度
1 | scp -C local_file.tar.gz user@remote_host:/path/to/target |
上面的命令在传输local_file.tar.gz文件时将启用压缩,可以加快传输速度。
高级用法示例
1.使用scp和ssh-agent进行无密码复制
1 | # 启动ssh-agent并添加私钥 |
上面的示例展示了如何结合使用ssh-agent和scp实现无密码文件复制。首先启动ssh-agent并添加私钥,然后使用scp进行文件传输,无需再次输入密码。
2.使用scp进行文件同步
1 |
|
上面的脚本使用rsync命令实现增量文件同步。它将本地的/path/to/source目录与远程主机的/path/to/target目录进行同步,只传输新的或已修改的文件。通过这种方式,我们可以高效地将本地文件同步到远程主机上。
通过以上示例,我们可以看到scp命令在远程文件传输方面非常实用和高效。它不仅可以在本地和远程主机之间安全地复制单个文件,还可以递归复制整个目录。同时,它还提供了一些有用的选项,如保留文件元数据、启用压缩等,以提高传输效率和可靠性。
此外,我们还可以将scp与其他工具(如ssh-agent和rsync)结合使用,实现无密码文件复制、增量文件同步等高级功能。这些功能在自动化部署、备份等场景中都非常有用。总之,scp是一个强大而实用的远程文件传输工具,在Linux系统管理中扮演着重要的角色。