我正在尝试将数据复制到我的一台服务器。某些复制的文件在源计算机上具有 444 权限。这非常烦人,因为如果在写入这些文件之一时传输被中断,如果我不删除它,我将无法完成写入。
有什么方法可以告诉scp
在目标端应用一组给定的权限(或者只是继承目标目录的权限?
最好,我想让我的文件为 664,目录为 775。
答案1
scp
复制文件,仅此而已。如果您正在寻找更灵活的东西,同步就是你所需要的。
要复制目录树,请使用
rsync -a local-directory/ remote.example.com:remote-directory/
如果传输中断,请再次运行 rsync,它将从中断处恢复。
保留权限可能是正确的事情,但如果您想应用不同的参数,可以使用该--chmod
选项。如果您确实想忽略本地权限,请使用--no-perms
.
如果存在大文件并且您的副本经常被中断,并且远程树是您使用 rsync 填充的新副本,那么请使用该--append
选项。这样,如果复制在文件中间中断,rsync 将完成该文件,而无需验证远程文件的当前内容是否与本地内容匹配,这可以节省一些时间。再次强调,仅当您确定部分远程文件是传输中断的结果,而不是例如文件的某些旧版本。