将目录列表传递给 rsync

将目录列表传递给 rsync

我有一个包含 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

相关内容