zip / unzip コマンド 2013/10/14
zip形式の圧縮ファイルを扱うコマンド。
lzh形式の圧縮ファイルの場合はlha
コマンドを使う。
tar形式のファイルの場合はtar
コマンドを使う。
インストール 2016/02/13
Ubuntuではzip, unzipというパッケージに入っている。(Ubuntu 13.10, 15.10 で確認)
$ sudo apt-get install zip unzip
パスワード付きのZIPの作成・解凍 2011/02/27
パスワード付きのZIPの作成(圧縮)または解凍をコマンドで行うには -P
オプションを使う。
$ zip -P «パスワード» «ZIPファイル名» «圧縮対象ファイル»
$ unzip -P «パスワード» «ZIPファイル名»
ただし、コマンドラインにパスワードを与えると、履歴やpsコマンドでわかってしまうので、セキュリティ上はよくない。
ディレクトリまるごとzip圧縮するには 2014/04/17
オプション -r
を付ける。
$ zip -r «ZIPファイル名» «対象ディレクトリ»
tar
での以下に相当する。
$ tar cvzf «TARGZファイル名» «対象ディレクトリ»
zipファイルを解凍するには 2014/10/24
$ unzip «ZIPファイル名»
Javaの開発環境に付属のjar
コマンドでもできる。
$ jar xvf «ZIPファイル名»
これらは tar
での以下に相当する。
$ tar xvzf «TARGZファイル名»
jar は tar と同じ使い方で、ただ tar に付けるオプション z
だけ削除する、と覚えると楽。
zipファイルに含まれるファイルの一覧を見るには 2013/07/10
$ unzip -l «ZIPファイル名»
jar
でもできる。
$ jar tf «ZIPファイル名»
これらは tar
での以下に相当する。
$ tar tzf «TARGZファイル名»
jar は tar と同じ使い方で、ただ tar に付けるオプション z
だけ削除する、と覚えると楽。
圧縮結果のバイナリを標準出力に吐き出すには 2013/10/19
ZIPファイル名の代わりに -
と書くと、-
というファイルに圧縮ファイルを書き出すのではなく、標準出力にバイナリが書き出される。
これを応用して、ローカルにある大量のファイルを圧縮しながらリモートにSSHで転送するには以下のようにする。
$ zip -r - «圧縮対象ディレクトリ» | ssh «リモートホスト» "cat > «リモートでの書き出し先圧縮ファイルパス»"
ローカルにディスク容量の余裕がなく、あまりにも大容量で一時的にであっても圧縮ファイルをローカルに置くことができない場合にこの方法が便利。
tarでも同じことができる。-> ローカルにある大量のファイルを tar しながら、リモートにアップロードするには