我有一个包含 120 个路径的文本文件list_of_dirs_to_copy
:
data/A/backups/2018_02_12
data/B/backups/2/files
data/B/old_files/2015_12
data/C/my_datafiles/800/dat
data/F/backups & old files (second backups)
...
重要的提示LF
:上面的文件中有换行符,目录名中有&
、等特殊字符。(
data
位于/mnt/storage3/workfiles/backups
。所以我cd /mnt/storage3/workfiles/backups
这样做是为了让我的路径list_of_dirs_to_copy
变得相关。
现在我想使用以下命令将文本文件中列出的所有目录(及其所有隐藏文件和子目录)复制到另一个硬盘驱动器。
rsync -rvh --append-verify --chmod=ugo=rwX --no-o --no-g --no-perms --progress --stats $list_of_directories /drives/f/data_backups/
如何在rsync
不破坏目录列表的情况下传递目录列表(即接收Argument list too long
)?可不可以将每一行文字都rsync
一一发送呢?这有意义吗?
答案1
rsync -av ...options... --files-from=list_of_dirs_to_copy \
/mnt/storage3/workfiles/backups/ \
/drives/f/data_backups
中的路径list_of_dirs_to_copy
将被解释为相对于源目录。使用给定的列表,这将创建data
为 下的子目录/drives/f/data_backups
。