尊敬されるプロジェクトは、などを含むフォルダなどの単一のディレクトリをzyrgus-3.18.tar.gz
含むtarアーカイブを公開します。zyrgus-3.18
src
build
dist
しかし、いくつかのパンクプロジェクトはすべてを根にしています: '-(混乱アーカイブをキャンセルする場合。毎回手動でフォルダを作成するのは痛く、ほとんどの場合不要です。
- .tarファイルまたは.tar.gzファイルのルートに複数のディレクトリが含まれていることを確認する非常に簡単な方法はありますか?大規模アーカイブの場合も同様です。
- それとも、この場合、ディレクトリ(拡張子のないアーカイブ名)を作成し、その中にすべてのコンテンツを置くことができるツールはありますか?
答え1
パトロール隊員さまざまな種類のアーカイブを処理し、アーカイブに複数のファイルが含まれている場合は、サブディレクトリを作成して、抽出されたファイルが作業ディレクトリを複雑にするのを防ぎます。
アーカイブ抽出
patool extract archive.tar
サポートされている形式のリストを取得するにはpatool formats
。
答え2
次のようなことができます
tar tf thefile.tar | cut -d/ -f1 | sort -u
tarにどのトップレベルのエントリがあるかを確認して、複数のものがあることをwc -l
確認してください。たとえば、tarにsomedir/whatever
AND ALSO(またはそれ以上)形式のファイルパスが含まれていると、これは失敗する可能性があります。./somedir/whatever
しかし、これは一般的ではありません。
これは、出力する前にtarファイル全体を読み込みますが、順次読み込みであるsort
ため、大きなファイルをスキップできるため、実際の抽出よりも高速です。
これを対話的に実行し、ファイルが大きくなる可能性がある場合は、複数の項目を印刷する場合と+sort -u
に変更できます。uniq
ControlC
答え3
あなたはできます:
pax <some.tar
...tar
ファイルの内容を一覧表示します。
どれくらい深いかを知りたい場合は、次のようにできます。
pax <some.tar | tr -dc /\\n | sort -r | head -n1
以下を使用して、抽出時に爆発を明示的に無効にすることができます。
mkdir some.tar
pax -'rs|^|some.tar/|' <some.tar
答え4
aunpack archive.tar
私が使うものです。
良かった時代の一部ツールパック。マンページ:https://linux.die.net/man/1/atool