サブフォルダが多いトップレベルフォルダがあります。その名前は「一つ」です。.png
その中にはたくさんのファイルがあります。.jpg
「a」を新しいフォルダ「b」に再帰的にコピーしたいのですが、.png
ファイル.jpg
だけをコピーしたいです。どうやってこれを達成できますか?
答え1
find a \( -name "*.png" -or -name "*.jpg" \) -exec cp {} b \;
答え2
一つの線
cp $(find a -name "*.jpg" -o -name "*.png") b
答え3
for file in $(find a -name "*.jpg" -o -name "*.png")
do
cp ${file} b/${file}
done
答え4
次のコマンドでbash globstarを使用できますcp --parents
。
shopt -s globstar
mkdir -p dest
cp --reflink=auto --parents **/*.jpg **/*.png dest/