FIND + TARコマンドを使用して特定のファイルを抽出する方法

FIND + TARコマンドを使用して特定のファイルを抽出する方法

tarfindコマンドを使用してファイル内の特定のファイルを抽出できるかどうかを知りたいです。

例:

  • 一般的な状況:「file1」というファイル名を見つけて抽出します。

    tar xvf tarfilename file1 
    
  • 私の状況:

    find . -iname "*tar*" -exec tar -xvf *file1* {} \;
    

    それが可能かどうかはわかりません。

理由:

tar私の内部プロダクションシステムはコマンドの実行を許可しません。

最善の方法はtarを直接実行することであることを知っていますが、最終的に希望は崩れました。

よろしくお願いします。

答え1

シェルから直接実行することはできませんが、tar別のコマンドで実行できる場合は、次のことができます。

env tar xvf file.tar file1
find . -prune -exec tar xvf file.tar file1 ';'
perl -e 'exec @ARGV' tar xvf file.tar file1

ただし、これはまだ有効であるため、tar少なくともあなたの出馬を禁止する法律の精神にまだ違反している可能性がありますtar

これに加えて(アーカイブ処理に使用されるPOSIXコマンド)もtar実行できます。pax

pax -r < file.tar file1

関連情報