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