我有一个文本文件,其中包含目录列表及其绝对路径
$ cat DirectoriesToCopy.txt
/data/Dir1
/data/Dir2
我想使用rsync复制所有这些目录,将其绝对路径保留到另一个位置。
我尝试了以下rsync命令,但它不起作用
rsync -avr --include-from=DirectoriesToCopy.txt --exclude='*/' --exclude='/*' / /media/MyDestination/
这是怎么了?
使用以下命令:
rsync -av --include-from=DirectoriesToCopy.txt --include /data/ --exclude='/data/*' --exclude='/*/' / /media/MyDestination/
您需要显式包括/ data /,也可以将其添加到文件列表中。然后排除所有其他目录(顺序对于包含/排除很重要)。
请注意,您对的使用-r
是多余的,因为包含在中-a
。
编辑:您还可以使用以下方法完成相同的结果:
rsync -av --relative /data/Dir1 /data/Dir2 /media/MyDestination/
不是rsync会迫使您做一些困难的事情,而只是复制几个目录,它只是为您提供了完成同一件事的多种方式。在某些情况下,使用包含/排除方法可能更适合,在这里,我会做上面的--relative事情(无需--relative
最终加上/media/MyDestination/Dir1
和/media/MyDestination/Dir2
,--relative
将整个源路径复制到目标位置)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句