Rsync

包含在查找命令中的 rsync -R 問題

  • November 11, 2011

我正在嘗試複製目前和所有子目錄中名為“specials.xml”的所有文件,並創建每個子目錄的名稱。我正在使用 -R 進行 rsync,因此它為每個相應的子目錄創建相對路徑。例如,我想要cp:

/home/deploy/admin_xml_files/foo.com/specials.xml
/home/deploy/admin_xml_files/bar.com/specials.xml

到:

~/adminxml/foo.com/specials.xml
~/adminxml/bar.com/specials.xml

但這不起作用:

$ mkdir ~/adminxml/
$ find /home/deploy/admin_xml_files -iname 'specials.xml' -exec rsync -aR ~/adminxml/ {} +

它在說:

錯誤:複製多個文件時,目標必須是目錄。rsync 錯誤:在 main.c(543) 選擇輸入/輸出文件時出錯,目錄程式碼 3)

$$ Receiver=3.0.7 $$…

這可能與rsync的參數順序有關,因為它需要是SRC DEST

$ mkdir ~/adminxml/
$ cd /home/deploy/admin_xml_files
$ rsync -avR $(find . -iname 'specials.xml') /path/to/adminxml/

引用自:https://serverfault.com/questions/329959