echo './2d41d907b7cb558db6f3ca49e992ad8/rendering/02.png' | xargs -I {} cp {} `echo {} | sed s'/\///g' `
这给了我一个错误说
cp: './2d41d907b7cb558db6f3ca49e992ad8/rendering/02.png' and './2d41d907b7cb558db6f3ca49e992ad8/rendering/02.png' are the same file
就好像 sed 不工作一样..
我最终想做这样的事情
find . -name "*.png" | xargs -I {} cp {} ../`echo {} | sed s'/\///g' `
不使用 for 循环或 exec。
答案1
您可以使用此代码代替。
find . -type f -name '*.png' -exec sh -c 'echo cp "$1" ../"${1//\/}"' cp_sh {} \;
echo
当您对试运行结果感到满意时删除。