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


18

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

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

   tar -xf MyTar.tar *.jpg

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

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

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

私はtarのmanページを見てきましたが、問題についての手がかりが見つかりませんでした。


どのtarとどのバージョンですか?結果を貼り付けるtar --version
smci

回答:


32

最後に、良い休憩の後に答えを見つけました。オプションはwildcard s、複数...

だからコマンド

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

まさに私が必要としたことをしました。


3

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


0

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

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

tar xvf ... /dev/rmt/0 `tar tf ... /dev/rmt/0 | grep 'pattern' `
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.