我的主目录中有一个大文件夹“X”,在闪存驱动器上有一个过时的副本——Y。什么是类似的rm Y; cp X Y,但不覆盖现有文件?
小智 27
rsync 的属性比上一个答案提到的要多得多。你应该自己研究一下:
man rsync
Run Code Online (Sandbox Code Playgroud)
但是对于您的问题,我建议:
rsync -a --delete X Y
Run Code Online (Sandbox Code Playgroud)
这样,接收者 (Y) 将删除它拥有的任何不在 X 中的文件。但请确保您做得对。以 root 身份错误地使用很容易杀死您的系统... :)
Kri*_*ost 16
看看rsync(1)。它的目的是几乎完全符合您的要求。
rsync -av X Y
Run Code Online (Sandbox Code Playgroud)
它支持通过自己的协议或 ssh 进行远程复制,但也可以在本地使用。
根据您想要的确切行为,您可能还想传递该--update选项。这将告诉 rsync 不要覆盖目标上已经存在的文件并且比源中的文件新。
如果您想删除额外的文件(即存在于 Y 中但不存在于 X 中的文件),您可以添加该--delete选项。