![rsync -R 包含在 find 命令中的问题](https://linux22.com/image/567086/rsync%20-R%20%E5%8C%85%E5%90%AB%E5%9C%A8%20find%20%E5%91%BD%E4%BB%A4%E4%B8%AD%E7%9A%84%E9%97%AE%E9%A2%98.png)
我正在尝试复制当前目录和所有子目录中名为“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 错误:选择输入/输出文件时出错,目录代码 3) 在 main.c(543) [Receiver=3.0.7]...
这可能与 rsync 的参数顺序有关,因为它需要是 SRC DEST
答案1
$ mkdir ~/adminxml/
$ cd /home/deploy/admin_xml_files
$ rsync -avR $(find . -iname 'specials.xml') /path/to/adminxml/