我有一个如下所示的文件:
/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