rsync 不使用 --files-from 选项?

rsync 不使用 --files-from 选项?

我正在尝试跑步rsync -a --files-from=~/.rsync_file_list ~/destination,它告诉我:rsync error: syntax or usage error (code 1) at options.c(1652) [client=3.0.7]。谁能告诉我我做错了什么?

该文件~/.rsync_file_list仅包含以 开头的文件名列表~/,并以换行符分隔(尽管我也尝试将它们全部列出在同一行上,但结果相同)。

如果我运行rsync -a ~/file ~/file2 ~/file3 ~/destination它效果很好。那么我对这个--files-from选项缺少什么?

答案1

好吧,我发现问题了。

  1. 包含文件名的文件必须包含仅有的文件名;没有路径,无论是相对路径还是其他路径;
  2. 指定后--files-from=FILE,rsync 需要一个源目录来查找列出的文件。

所以命令应该是rsync -a --files-from=~/.rsync_file_list $HOME/ /destination.

.rsync_file_list应该读:

file 1
file 2
file 3

答案2

使用“~”可能无法在“files-from”文件中工作,除非 rsync 足够智能来识别和翻译“~”符号。

当您在 shell 命令行中指定“~”作为命令的一部分时,它是本身将“~”转换为您的主目录将参数传递给程序。因此,即使您输入rsync -a ~/filersync“看到”的实际上是解析的路径,或者rsync -a /home/foo/file.

Bash 波形符扩展了解更多信息。

相关内容