圧縮された tar.bz2 のファイルがあり、それを .bz2 に変換したいのですが、これを 1 回で実行するコマンドはありますか?
以下のことを試しましたが、うまくいきませんでした。
tar -xvjf US.tar.bz2
US
bzip2: Compressed file ends unexpectedly;
perhaps it is corrupted? *Possible* reason follows.
bzip2: Inappropriate ioctl for device
Input file = (stdin), output file = (stdout)
It is possible that the compressed file(s) have become corrupted.
You can use the -tvv option to test integrity of such files.
You can use the `bzip2recover' program to attempt to recover
data from undamaged sections of corrupted files.
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
追伸
以下も試してみました:
bunzip2 -c < US.tar.bz2 | gzip -c > us.bz2
その結果は次のようになります。
bunzip2: Compressed file ends unexpectedly;
perhaps it is corrupted? *Possible* reason follows.
bunzip2: Inappropriate ioctl for device
Input file = (stdin), output file = (stdout)
It is possible that the compressed file(s) have become corrupted.
You can use the -tvv option to test integrity of such files.
You can use the `bzip2recover' program to attempt to recover
data from undamaged sections of corrupted files.
答え1
tar
は、他のファイルをまとめて保存するが、圧縮しない zip ファイルに似ています。 bzip2
ファイルは圧縮されますが、一度に 1 つだけです。 ファイルは、.tar.bz2
複数のファイルが 1 つのファイルに格納されtar
、その後 zip 圧縮されたことを示している可能性があります。最初に tar 圧縮せずに、それらをまとめて zip 圧縮することはできません。
エラーは.tar.bz2
ファイルが破損しているために発生します。 正常に動作するファイルの例を以下で参照してください。
$ ls
test_file.tar.bz2
$ tar xvjf test_file.tar.bz2
test_file
$ ls
test_file test_file.tar.bz2
編集
上記の例では、tar には 1 つのファイルしかありませんでした。そのフォルダーだけを zip に圧縮したい場合は、次のようにします。
$ bzip2 test_file
$ ls
test_file.bz2