scp和rsync都是Linux系统中常用的文件传输工具,它们在功能和使用场景上有所不同。
scp(Secure Copy)是一个基于SSH协议的文件传输工具,用于在本地和远程主机之间安全地复制文件和目录。而rsync(Remote Synchronization)则是一种强大的文件同步工具,它不仅可以进行本地和远程的同步,还可以优化数据传输,仅同步有变化的部分,适用于增量备份和数据优化传输。
scp的基本语法是scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2。例如,从本地复制文件到远程主机的命令是scp /path/to/local/file.txt user@remote_host:/path/to/remote/directory。scp的常用选项包括:
-P port:指定SSH端口。
-p:保留原始文件的修改时间、访问时间和权限。
-r:递归复制整个目录。
rsync的基本语法为rsync [OPTION]... SRC [SRC]... [user@]DEST。一个典型的使用示例是rsync -avz /path/to/local/directory/ user@remote_host:/path/to/remote/directory,其中-a表示归档模式,-v显示详细过程,-z压缩数据以加速传输。rsync的常见选项包括:
-a:归档模式,等同于-rlptgoD(递归、保留链接、保留权限、保留时间戳、保留组、保留所有者、保留设备文件)。
-v:详细模式,显示传输过程。
-z:压缩文件数据。
-e:指定远程shell,如使用不同于默认的SSH端口。
--delete:删除目的地中存在而源中不存在的文件(谨慎使用)