请原谅,我可能没有使用正确的术语来描述问题,并且误解了几个常用命令的最基本用法。
我有一个简单的 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