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
テストの実行結果が満足であれば削除してください。