将文件从源目录复制到目标基目录并维护源路径

将文件从源目录复制到目标基目录并维护源路径

请原谅,我可能没有使用正确的术语来描述问题,并且误解了几个常用命令的最基本用法。

我有一个简单的 find 语句,用于定位要复制的文件。我想添加 -exec cp {} 并让 cp 将文件从源目录复制到新的基目录,但包含完整路径。例如:

  • find . -name *.txt定位/user/username/projects/source.txt
  • cp {} [now what?]将文件复制到/user/newuser/projects/source.txt

答案1

rsync -rlpv --files-from=<(find ...) /user/username/projects /user/newuser

答案2

如果您能确定所有子目录都存在,那么这是一个有趣的选择:

cd /user/username/
find . -name \*.gz | sed 's/\.\(.*\)/.\1 ..\/newuser\1/' | xargs -n2 cp

相关内容