あるフォルダ構造から別のフォルダ構造に特定のファイル形式のみをコピーする

あるフォルダ構造から別のフォルダ構造に特定のファイル形式のみをコピーする

サブフォルダが多いトップレベルフォルダがあります。その名前は「一つ」です。.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/

関連情報