さまざまな種類のファイルを含むアーカイブから jpeg 画像のみを抽出するスクリプトを作成しようとしています。
そのために、私は以下を使用しようとしました:
tar -xf MyTar.tar *.jpg
しかし失敗しました(*.jpgが見つかりません)そして「--wildcard」を使うように勧められました。そこで試してみました
tar -xf MyTar.tar --wildcard *.jpg
それを実行しましたが、同じエラーが発生し、オプション「--wildcard」があいまいであるという別の警告が表示されました。
tar のマニュアルページを調べましたが、問題についての手がかりは見つかりませんでした。
答え1
結局、私は休憩の後に答えを見つけました。オプションはワイルドカードですs、複数形...
そこでコマンド
tar -xf MyTar.tar --wildcards "*.jpg"
まさに私が必要としていたことをしてくれました。
答え2
このようにワイルドカードを引用符で囲むと"*.jpg"
、シェルはワイルドカードを展開せずにそのまま tar に渡します。ワイルドカードを評価するのはシェルではなく tar であり、引用符がその役割を果たします。
答え3
tarの古いバージョンについては、以下から抜粋します。「man」ファイル:
ファイル名置換ワイルドカードは、アーカイブからファイルを抽出する際には使用できません。代わりに、次の形式のコマンドを使用します。
tar xvf ... /dev/rmt/0 `tar tf ... /dev/rmt/0 | grep 'pattern' `