web-dev-qa-db-ja.com

tar.gzファイルの内容を表示するにはどうすればよいですか(ファイル名+ファイルサイズ)

tar -tzを使用できません。使用しているソラリスバージョンでは-zオプションを使用できません。

私はgunzip file.tar.gz | tar -tvのようなものを試しましたが、それは与えるだけです:

tar:/ dev/rmt/0:そのようなファイルまたはディレクトリはありません

...そしてtar.gzを.tarに解凍しますが、これは望ましくありません。変更せずに中だけを見たい。

6
dr jerry

便利なSolarisの箱はありませんが、zcat file.tar.gz | tar -tvのようなものがうまくいきませんか? Solarisではgzcatまたはgunzip -cである必要があるかもしれませんが、よくわかりません。

更新:@Riccardo Murriは、Solarisでのtarのデフォルトの動作は[〜#〜]ではない[〜#〜]であると指摘していますstdin(これは非常に非ユニックスのように見えますが、ce la vie)から読み取るため、zcat file.tar.gz | tar -tv -f -がおそらく必要です。

更新2:Solaris manページにふさわしいサイトのように見えるものが最終的に見つかったので、 man gunzipman tar

7
Hank Gay

Sunバージョンのtarしかない場合の正しい答えは次のとおりです。

gzip -dc file.tar.gz | tar -tf-

上記のコメントでRiccardo Murriによって与えられる。このコマンドは、夜明け以降のどのバージョンのSolarisでも使用できます。

GNU tarが利用可能であれば、もちろん質問もしません。Solaris11ではGNU tarがデフォルトでインストールされていると思いますただし、gtarと呼ばれ、Sunの標準バージョンのtarと区別されます。

GNU tarが何らかの理由でSolaris 11システムにインストールされていない場合は、次のようにインストールできます。

pkg install // solaris/archiver/gnu-tar

GNU tarがSolaris 11のデフォルトのインストールで使用できるようになったのは少し皮肉なことです。これは、必要がなくなったためです。Oracle/ Sunは独自のtarを更新して圧縮を提供するようですサポート(GNU tarと同様)であり、Sun tarを使用してuntarしようとした場合に以前はエラーが発生する問題のあるLinux tarファイルを処理できます。


Solaris 10では、システム管理者が「Solaris Companion CD」の内容をインストールできるほど親切であると期待できます。その場合、GNU tar in /opt/sfw/bin/gtar。残念ながら、多くのSolaris SysAdminは、ホストをセットアップするときにSolarisシステムを「GNU互換」にするSun(現在のOracle)のパッケージを意図的にnotインストールすることに誇りを持っています。なぜ私を打ちます。

いずれの場合でも、システムには常にGNU tarが必要です(少なくとも<Solaris11の場合)。ほとんどのオープンソースパッケージはGNU tarおよび場合によっては、シンボリックリンクの処理方法にいくつかの違いがあるため、Sun tarを使用してこれらをuntarできない場合があります。つまり、反対は当てはまりません。つまり、GNUサンタール。

組織内:GNU tarが新しいSolarisホストのデフォルトパッケージの一部であることを確認してください!

2
peterh

-cスイッチがありません:

gunzip -c file.tar.gz | tar -tv
1
Sbh

Solaris 10では、gzip -dc target.tar.gz | tar xf -で抽出します。抽出後、ディレクトリが表示されます。

1
Eshwer

tar -tvf <filename>.tar.gz(:

1
Daniel Le

[〜#〜] avfs [〜#〜] は、仮想ファイルシステム( Fuse に基づく)であり、アーカイブ内を他のディレクトリと同じように見ることができます。 。 Solarisでサポートされていますが、利用可能なパッケージがあるかどうかはわかりません。ソースからコンパイルする必要があるかもしれません。

mountavfsを1度だけ実行します(次の再起動まで存続します。~/.profileに入れてください)。これにより、~/.avfsをルートとするファイルシステム全体のビューが作成されます。このビュー内では、すべてのアーカイブに、末尾に追加の#が付いた名前の関連付けられたディレクトリがあります。このディレクトリには、アーカイブの内容が含まれています。

mountavfs
ls -lR "~/.avfs$PWD/file.tar.gz#"
cp -p "~/.avfs$PWD/file.tar.gz#/path/to/file-to-extract" .