.tar.gz ファイル内のファイルを抽出せずに検索する方法はありますか? ある場合、そのファイルを日付で検索する方法はありますか?
私のOSはAIXです。
ありがとう!
$ tar tzf アーカイブ.tar.gz | grep "検索"
tar
アーカイブするファイルにatimesを保存するように指示できますが、すべてのtarがこれを行うわけではありません。残念ながら、この場合のAIX固有のtarには精通していません。知る必要があるのは、tar が呼び出されたかどうか--atime-preserve
(AIX tar はこれをサポートしていない可能性があるため、必ず確認してください) であり、抽出を呼び出すときは-p
フラグを使用する必要があります。したがって、次のようになります。
tar zxpf file.tar.gz the/file/you/want.txt
Unix (cf Linux) の tar は をサポートしていない可能性が高いため、-j
以下-z
を使用する必要があります。
gzip -dc file.tar.gz | tar xf - the/file/you/want.txt
パイプからコマンドを実行します。この場合、抽出したいファイルの名前を知る必要があります。これは次の場所から取得できます。
tar tf file.tar.gz
必要に応じて圧縮を使用します。| grep foo
foo という名前のファイルを探している場合は、明らかに a を追加できます。
tarball 内のファイルの変更日に基づいて tar からファイルを抽出することは不可能だと思います。少なくとも、ドキュメントでそのようなサポートを見つけることができませんでした。tar
は単なるテープ アーカイバであり、そのような派手なことを行うためのものではないことを覚えておいてください。:-)
最後に、これを行うことができます:
tar xvf file.tar `tar tf file.tar | grep foo`
「foo」に一致するすべてのファイルをfile.tar
(やだやだ以上の圧縮)から抜き出したい場合。このコマンドを実際のテープ ドライブで実行することはお勧めしません。