シェルのディレクトリから特定のファイルを抽出する方法は?

シェルのディレクトリから特定のファイルを抽出する方法は?

私はコマンドラインディレクトリを取得し、スクリプトが実行されている現在のディレクトリにすべての内容を抽出する単純なシェルスクリプトを作成しました。

#!/bin/bash
cp -v -R $1/* . 

これを拡張したいです。ディレクトリAのすべてのPNGファイルを抽出したいとしましょう。ただPNGファイルです。

最初は、.pngで終わるすべてのファイルをディレクトリから検索して分類しようとしましたが、これらのファイルだけをディレクトリにコピーする方法がわかりません。

ベストアンサー1

誰でも

find "$1" -name '*.png' -exec cp -v -- {} ./ \;

または(GNUを使用cp)より効率的な方法

find "$1" -name '*.png' -exec cp -vt ./ -- {} +

あるいは、シェルがそれをサポートしている場合は、globbingを使用できます。bash

shopt -s globstar

cp -v -- "$1"/**/*.png ./

おすすめ記事