rsync 不理解 --files-from=FILE 中的相对部分是什么

rsync 不理解 --files-from=FILE 中的相对部分是什么

我有一个如下所示的文件:

/cygdrive/d/path/to/my/file1.png
/cygdrive/d/path/to/my/file2.png
/cygdrive/d/path/to/my/file3.png
/cygdrive/d/path/to/my/file4.png

我正在使用以下命令调用 rsync:

rsync --files-from="/cygdrive/d/myfiles.txt" "/cygdrive/d/path/to/" "user@remotehost:/cygdrive/c/new/path/for"

我希望 rsync 使目录结构如下:

c:\new\path\for\my\file1.png
...

但它失败了,错误如下:

rsync:change_dir“/cygdrive/c/new/path/for/cygdrive/d/path/to/my”失败:没有此文件或目录 rsync:mkstmp“/cygdrive/c/new/path/for/cygdrive/d/path/to/my/file1.png.asdjfhsdj”失败:没有此文件或目录

我如何让 rsync 理解/cygdrive/d/path/to/源路径的一部分是“根”,并且只有它的子文件夹/文件才应该复制到目标根目录以在目标处提供新路径?

答案1

似乎命令行上指定的位是“源根”部分,而文件中的行是“相对”部分。

因此我需要删除/cygdrive/d/path/to/文件中的所有行,只留下my/file1.png

然后,当使用问题的命令行调用时,rsync 使用组装本地文件路径cmd_line_source + file_line,并将其复制到cmd_line_dest + file_line

相关内容