zaki work log

作業ログやら生活ログやらなんやら

[コマンドメモ] Linuxでzip操作

200年に1回くらい遭遇するLinux OSでzipの展開。
unzipはわかるし、-hすればまぁ分かるけど一応メモ。

アーカイブ内のファイル一覧

tarだとtar tf <filename>に相当するやつ。
zipinfoを単体実行すればOK

$ zipinfo <zip-file>

実行例

[zaki@registry tmp]$ zipinfo awscliv2.zip  | wc -l
5507
[zaki@registry tmp]$ zipinfo awscliv2.zip  | head
Archive:  awscliv2.zip
Zip file size: 33084282 bytes, number of entries: 5504
drwxr-xr-x  2.0 unx        0 b- stor 20-Jun-16 22:58 aws/
drwxr-xr-x  2.0 unx        0 b- stor 20-Jun-16 22:58 aws/dist/
-rw-r--r--  2.0 unx     1465 b- defN 20-Jun-16 22:50 aws/README.md
-rwxr-xr-x  2.0 unx     4047 b- defN 20-Jun-16 22:50 aws/install
-rw-r--r--  2.0 unx    68271 b- defN 20-Jun-16 22:50 aws/THIRD_PARTY_LICENSES
drwxr-xr-x  2.0 unx        0 b- stor 20-Jun-16 22:58 aws/dist/_struct/
drwxr-xr-x  2.0 unx        0 b- stor 20-Jun-16 22:58 aws/dist/awscli/
drwxr-xr-x  2.0 unx        0 b- stor 20-Jun-16 22:58 aws/dist/botocore/

展開時にファイル一覧を出力しない

tarだとvを付けないやつ。
-qを付与すればOK

$ unzip -q <zip-file>

個人的にはいつもtar tfしてディレクトリができるか否かを確認してtar xfするのでvは付けないんだよね。

指定ディレクトリに展開

tarだとtar xf <filename> -C <dirname>みたいなやつ。 -dを付与すればOK

$ unzip <zip-file> -d <dirname>

(おまけ)zip圧縮

指定ディレクトリ以下を圧縮したい場合

$ zip gitlab-compose.zip gitlab-compose/ -r

-rを忘れるとディレクトリだけをzipしてしまうので注意。
というかtar使おう。