web-dev-qa-db-ja.com

ワイルドカードを使用してtarアーカイブ内の特定のファイルを抽出する

多くの種類のファイルを含むアーカイブからjpeg画像のみを抽出するスクリプトを作成しようとしています。

そうするために、私は使用しようとしました:

   tar -xf MyTar.tar *.jpg

しかし、失敗し(* .jpgが見つかりません)、「-wildcard」を使用することをお勧めします。だから私は試しました

tar -xf MyTar.tar --wildcard *.jpg

私はそうしましたが、同じエラーと別の警告で、オプション「--wildcard」はあいまいであると私に言っています。

私はtarのマニュアルページを読みましたが、問題についての手掛かりは見つかりませんでした。

19
AdrieanKhisbe

最終的に、私は良い休憩の後で答えを見つけました。オプションはワイルドカードですs、複数形...

したがって、コマンド

tar -xf MyTar.tar --wildcards "*.jpg"

私が必要とすることを正確に行いました。

33
AdrieanKhisbe

このようにワイルドカードを引用符で囲みます"*.jpg"したがって、シェルはそれを展開しようとせず、代わりに直接tarに渡します。シェルにワイルドカードを評価させるのではなく、tarに評価させたい場合は、引用符で評価します。

3
Nicole Hamilton

一部の古いバージョンのtarでは、以下が 「man」ファイル から抽出されます。

ファイル名置換ワイルドカードは、アーカイブからのファイルの抽出には使用できません。むしろ、次の形式のコマンドを使用します。

tar xvf ... /dev/rmt/0 `tar tf ... /dev/rmt/0 | grep 'pattern' `
0
Ray Peck