linuxで*.zipを解凍する
*.zip形式のアーカイブ(VMwareイメージファイル)をネットから落としたので展開しようとしたけどうまくいかなかった。
gunzipは*.tar.gzを伸張して*.tarアーカイブにするだけなので、複数のファイルを含んだ*.zipアーカイブを展開することはできない。
manpageには下のように書いてあった。
複数の元ファイルを含んでいる zip ファイルを伸長するためには、 gunzip ではなく unzip を使うこと。
http://www.linux.or.jp/JM/html/GNU_gzip/man1/gzip.1.html
で、unzipを使ってみたけど下のようなエラーが出る。
# unzip ubuntu-ja-6.10-vmware-i386.gz Archive: ubuntu-ja-6.10-vmware-i386.gz inflating: Ubuntu-Edgy/Ubuntu-Edgy.vmdk Ubuntu-Edgy/Ubuntu-Edgy.vmdk: write error (disk full?)/n/^C)
ディスクには十分に余裕があるにもかかわらずdisk fullと言われて途中で終わってしまった。
アーカイブに問題があると思ってwindowsに転送してlhazで展開してみたけどちゃんとできた。
コピーと展開にめちゃめちゃ時間かかったよ。でかいアーカイブ(約600MB)なので。
なぜだ?とおもって検索してみたら以下のようなことらしい。
unzipコマンドでは2GB以上のファイルを作成することが出来ません。解凍後のファイルサイズが2GBを超える場合は、7zaコマンド(パッケージ名はp7zip)を使用してください。
http://developer.momonga-linux.org/wiki/?Mo3FAQ#l35
そうなのか。これってバッドノウハウだよね。手持ちの環境(CentOS4.4)には7zaなんてコマンド入ってないし。
windowsで展開して、tar.gzに固めなおすことにした。それでまたlinuxに転送して、tar -xvzfで展開すると。めんどくさすぎ。