zip
ファイルをZIP形式に圧縮するコマンド。
ZIPはWindowsでよく見られる圧縮形式です。 構造はファイル単位で圧縮して一つのファイルにアーカイブされています。 圧縮のアルゴリズムはハフマン法と辞書式の2つが用いてる。 ここがわかりやすいです。 Macでも正式にサポートされており圧縮解凍が可能です。
以下コマンドはmacOS High Sierraで確認しました。
tarコマンドの使い方はこちら
書式
zip [オプション] ZIPファイル [対象ファイル]
圧縮する zip
$ zip zip_file target_file.txt
zip_file.zipができます。
解凍する unzip
unzipコマンドを使います。
$ unzip zip_file.zip
同じ拡張子をまとめて圧縮
$ zip zip_file *.txt
これでカレントディレクトリにあるテキストファイル.txt
をまとめて圧縮できます。
サブディレクトリごと圧縮する -r
ディレクトリの中身を全て含めて圧縮する場合は-r
オプションをつけます。
$ zip -r zip_file target_dir
target_dir
の中身をすべて圧縮して、ZIP形式のzip_file.zip
を生成する。
オプション
オプション | 説明 |
---|---|
-r | ディレクトリ内のファイルを再帰的に扱う |
-f | 変更があったファイルの分だけZIPファイルを更新する |
-u | 変更があったファイルの更新または新規ファイルの追加だけを行う |
-d | 指定したファイルをZIPファイルから削除する |
改行コードを変換する
オプション | 説明 |
---|---|
-l | 改行コードをLFからCR LFに変換する |
-ll | 改行コードをCR LFからLFに変換する |
改行コードはLinux/MacではLF、WindowsではCR LFである。 開いたファイルが1行になった経験は数多くあるはず。 圧縮時にオプションをつけて変換しておこう。
- Linux/Mac から Windows へデータを送る
-l
、 - Windows から Linux/Mac へデータを送る
-ll
、
パスワード付きのZIPの作成・解凍 -P
# 圧縮
$ zip -P your_password zip_file target_file.txt
# 解凍
$ zip -P your_password zip_file target_file.txt
パスワード付きを普通に解凍してみると、パスワードを尋ねられる。
$ unzip zip_file.zip
Archive: zip_file.zip
[zip_file.zip] target_dir/aaa.txt password: # パスワードを入力
password incorrect--reenter: # パスワードを間違えると
password incorrect--reenter: # 3回目まで尋ねる
skipping: target_dir/aaa.txt incorrect password
解凍せずにZIPの中身を確認する
unzip -l
$ unzip -l zip_file.zip
Archive: zip_file.zip
Length Date Time Name
--------- ---------- ----- ----
0 01-19-2019 00:29 target_dir/aaa.txt
0 01-19-2019 00:29 target_dir/bbb.txt
0 01-19-2019 01:32 target_dir/ccc.txt
--------- -------
0 3 files
zipinfoコマンドでも確認できる。
$ zipinfo zip_file.zip
Archive: zip_file.zip
Zip file size: 514 bytes, number of entries: 3
-rw-r--r-- 3.0 unx 0 bx stor 19-Jan-19 00:29 target_dir/aaa.txt
-rw-r--r-- 3.0 unx 0 bx stor 19-Jan-19 00:29 target_dir/bbb.txt
-rw-r--r-- 3.0 unx 0 bx stor 19-Jan-19 01:32 target_dir/ccc.txt
3 files, 0 bytes uncompressed, 0 bytes compressed: 0.0%
よく使うls -l
と似た形式で出力してくれるので見やすい。
おわりに
tarコマンドの使い方はこちら
参考
treeコマンドで隠しファイルの表示
Linuxコマンドschedule2020-01-10
tarコマンドの使い方と圧縮のオプション
Linuxコマンドschedule2018-07-08
zipコマンドでのファイル圧縮と便利なオプション
Linuxコマンドschedule2018-01-19