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


13

我正在尝试跑步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选项缺少什么?


试试sed "s#~/#/home/wolf/#g" -ie ~/.rsync_file_list
Andy

@安迪:A,同样的结果。

Answers:


20

好的,我发现了问题。

  1. 包含文件名的文件必须包含文件名。没有相对或其他途径;
  2. 指定后--files-from=FILE,rsync需要一个源目录,可在其中找到列出的文件。

因此,命令应为rsync -a --files-from=~/.rsync_file_list $HOME/ /destination

.rsync_file_list 应该读:

file 1
file 2
file 3

3
更正:给定文件中的文件名是相对于源目录的,但不能在源目录上方(否../)。前导斜杠将被忽略,因此绝对路径不起作用。

我相信您可以编辑自己的答案,并添加非常好的添加内容以及您稍后在答案本身中发现的相关信息。
维尼修斯中号

0

除非rsync足够智能以识别和转换“〜”符号,否则在“ files-from”文件中不能使用“〜”。

当您在外壳程序命令行的命令中指定“〜”作为命令的一部分时,外壳程序本身会将“〜”转换为您的主目录,然后再将参数传递给程序。因此,即使您键入rsync -a ~/filersync“看到的”实际上还是已解析的路径rsync -a /home/foo/file

有关更多信息,请参见Bash Tilde扩展

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.