内容全体をスキャンせずに* .tar.gzファイル内のすべてのファイルを一覧表示できますか?

内容全体をスキャンせずに* .tar.gzファイル内のすべてのファイルを一覧表示できますか?

私はこの方法だけを知っています:

tar --full-time -tvf /path/to/file.tar.gz

ただし、すべてのアーカイブをtarスキャンするので、アーカイブが大きい場合は時間がかかります。私の質問は、*.7zや*.rarのような他の形式のように、先頭のみをスキャンし、特定の種類のヘッダーのみをスキャンする方法はありますか?

答え1

最も簡単な答えは「いいえ」です。 」

7Zip,RAR zip,,他。、二重機能プログラム/ファイル形式すべて。個々のファイルを圧縮し、圧縮結果を保持します。これにより、ファイルの一部がいいえ圧縮されますが、その結果、プログラムは個々のファイルにアクセスできます。

gzip.gz部分的に)異なります。シングルバイトストリームのみを圧縮します。バイトストリームは で提供されますtarbzip2.bz2)は他のアルゴリズムを使用しても同じことを行います。tarアーカイブプログラムgzipと圧縮プログラムです。アーカイブに完全に到達するには、ストリームが次のことを行う必要があります。最初解凍してみてください。これは経験を通してのみ得ることができますフルファイル。その後、tarアーカイブの個々の部分にのみアクセスできます。

ここでそのステップが表示されない理由は、そのステップが直接提供されるのではなく、組み込まれているためgzipです。tarそれ自体tarに出力ストリームをパイプする方法を知っていますgzip

答え2

いいえ、できません。よりウィキペディアtar ファイル形式の説明です。基本的には交互に繰り返される順序だけです。ファイルヘッダそして文書内容。最初はディレクトリがなく、各ファイルのすべての情報はそのディレクトリにあります。ファイルヘッダ

ヘッダーにはファイルサイズが含まれているため、コンテンツのみがリストされている場合、読者は次のヘッダーの先頭を見つけてコンテンツ全体の読み取りをスキップできます。ただし、tarファイルが圧縮されている場合は、圧縮されていない適切なバイト数をスキップできるように最初にコンテンツを解凍する必要があるため、これは不可能です。

関連情報