web-dev-qa-db-ja.com

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

多くのサブフォルダーを持つトップフォルダーがあります。 「a」という名前です。沢山あります .pngおよび.jpgファイルがあります。 「a」を新しいフォルダ「b」に再帰的にコピーしたいが、.pngおよび.jpgファイル。どうすればそれを達成できますか?

5
JasonGenX
find a \( -name "*.png" -or -name "*.jpg" \) -exec cp {} b \;
4
gardenhead
for file in $(find a -name "*.jpg" -o -name "*.png")
do
  cp ${file} b/${file}
done
1
MelBurslan

一発ギャグ

cp $(find a -name "*.jpg" -o -name "*.png") b
1
Marware

ブレース展開 を使用して、より多くのファイルタイプがある場合は少し短くなります

cp -r source_directory/*.{png,jpg,jpeg} target_directory

これにより、タイプのファイルが存在しない場合は常にエラーが発生します。 を参照してくださいhttps://serverfault.com/a/153893
追加 2>/dev/nullこれらのエラーを非表示にする
追加 || :終了コードを発生させない

cp -r source_directory/*.{png,jpg,jpeg} target_directory 2>/dev/null || :
0
Roger Barton