![如何仅使用文件名来 rsync 文件夹及其子文件夹?](https://linux22.com/image/1446554/%E5%A6%82%E4%BD%95%E4%BB%85%E4%BD%BF%E7%94%A8%E6%96%87%E4%BB%B6%E5%90%8D%E6%9D%A5%20rsync%20%E6%96%87%E4%BB%B6%E5%A4%B9%E5%8F%8A%E5%85%B6%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
我想要将文件夹中的文件同步/media/alex/Disk1/Movies
到名为 的文件夹/media/alex/Disk2/Movies
。我想要复制每个如果不存在,则将文件/media/alex/Disk1/Movies
或子目录复制到正确位置/media/alex/Disk2/Movies
。文件的大小和时间属性无关紧要。
例如,我有一个仅存在于 Disk1: 上的文件/media/alex/Disk1/Movies/Experimental/test.avi
,因此只有这个文件应该被复制到/media/alex/Disk2/Movies/Experimental
。
我尝试过使用语法
rsync -v -n -auv --list-only /media/alex/Disk1/Movies /media/alex/Disk2/Movies
但它列出了全部目录 '/media/alex/Disk1/Movies' 中的文件,即使是存在于 下的文件/media/alex/Disk3/Movies
。如何rsync
正确使用语法?
答案1
尝试
rsync -n -auv --size-only /media/alex/Disk1/Movies/ /media/alex/Disk2/Movies
如果这样做符合你的要求,你可以删除-n
参数
一些解释:
--size-only
确保您不必触碰目标文件夹中的电影来执行校验和,并且您不必介意时间是否不同(因为电影文件的内容没有改变,所以这应该没问题)- 的语法
rsync
可能有点令人困惑。在您的示例中,您省略了后面/
的/media/alex/Disk1/Movies
,这实际上会将整个电影文件夹复制到其他电影文件夹中(因此它将是/media/alex/Disk2/Movies/Movies
)