ファイルが.bz2または.tar.bz2(ファイル拡張子なし)を使用して圧縮されていることを確認し、それに応じて解凍する必要があります。このコマンドを使用しましたが、file
.bz2と.tar.bz2についても同じ結果が出ました。 .bz2 および .tar.bz2 ファイルを明確に識別する方法を提案します。
答え1
ファイルを実行し、bzcat
結果を次にパイプしますfile
。
$ bzcat somefile.bz2 | file -
/dev/stdin: data # or whatever; this is not a .tar.bz2
$ bzcat otherfile.bz2 | file -
/dev/stdin: POSIX tar archive # this *is* a .tar.bz2
答え2
file
気にしない:そうだと思います。滞在、いいえファイル名。
tar形式の内容は、ファイルを解凍しなければ表示されません。
答え3
file
-z
サポートまたはオプションを含むバージョンがある場合は、-Z
圧縮ファイルの内部を調べてその内容を把握できます。
どちらのオプションも POSIX 仕様の一部ではありません。文書。
ただし、この-z
オプションはfile
少なくとも2000年代初めから長い間BSDコマンドに存在していました(私のシステムの変更ログには2003年以前には何も表示されません)。 -Z
2015年6月に追加されました。file
BSDは現在、ほとんどの(すべて?)Linuxディストリビューション、* BSD、およびMac OSXを含む多くのシステムで使用されています。
からman file
:
-z、--圧縮解除
圧縮ファイルの内部を見てください。
-Z, --圧縮解除-noreport
圧縮ファイルの内部を表示しようとしますが、圧縮ではないコンテンツに関する情報のみを報告します。
たとえば、
# make a .tar.bz2 file
tar cfj test.tar.bz2 *
# make a .bz2 file
echo junk | bzip2 -c > junk.bz2
# try to fool `file`
cp test.tar.bz2 test.bz2
cp junk.bz2 junk.tar.bz2
echo "file -z:"
file -z *.bz2
echo
echo
echo "file -Z:"
file -Z *.bz2
出力:
file -z:
junk.bz2: ASCII text (bzip2 compressed data, block size = 900k)
junk.tar.bz2: ASCII text (bzip2 compressed data, block size = 900k)
test.bz2: POSIX tar archive (GNU) (bzip2 compressed data, block size = 900k)
test.tar.bz2: POSIX tar archive (GNU) (bzip2 compressed data, block size = 900k)
file -Z:
junk.bz2: ASCII text
junk.tar.bz2: ASCII text
test.bz2: POSIX tar archive (GNU)
test.tar.bz2: POSIX tar archive (GNU)