Open4
圧縮 & 解凍コマンド まとめ

タイムスタンプの生成テンプレート
圧縮ファイルの接頭によくつけるので記載しておく。
$(date +"%Y%m%d%H%M%S")
[西暦][月(0埋め)][日(0埋め)][時(0埋め)][分(0埋め)][秒(0埋め)]で出力される。
例えば、2023年8月31日9時15分30秒に実行した場合は20230831091530
が出力される。
各オプション間で文字列を挿入することは可能なので、上記表示が見辛ければ適当な箇所で_
などで区切りを入れると良い。
$(date +"%Y%m%d_%H%M%S")
全てのオプションを使用する必要はないので例えば秒数まで必要なければ最後の%S
を抜けばよい。
$(date +"%Y%m%d%H%M")

zip
ディレクトリの圧縮
zip compressed -r target_dir
-
compressed
: 圧縮後のファイル名(末尾の.zipは不要) -
target_dir
: 圧縮対象のディレクトリパス(末尾の/は不要)
解凍
unzip target_zip
-
target_zip
: 対象のzipファイルパス

7z
ディレクトリの圧縮
7z a compressed.7z target_dir
-
compressed.7z
: 圧縮後のファイル名(末尾の.7zまで記述) -
target_dir
: 圧縮対象のディレクトリパス(末尾の/は不要)
対象ディレクトリ配下のファイルのみを圧縮したい場合は以下
7z a compressed.7z target_dir/*
-
compressed.7z
: 圧縮後のファイル名(末尾の.7z
まで記述) -
target_dir
: 圧縮対象ファイルが格納されているディレクトリパス
解凍
7z x target.7z
-
target.7z
: 対象の7z
ファイルパス
※zip
ファイルも7z
で解答可能
tar.gz
も解凍可能
7z x compressed.tar.gz
-
compressed.tar.gz
:対象のtar.gz
ファイルパス
ただし、tar
までしか解凍しないのでtar
を更に解凍する必要がある。
tar
コマンドで解凍するほうが手っ取り早い。

tar
ディレクトリの圧縮
tar -zcvf compressed.tar.gz target_dir
-
compressed.tar.gz
: 圧縮後のファイル名(末尾の.tar.gz
まで記述) -
target_dir
: 圧縮対象ファイルが格納されているディレクトリパス
対象のディレクトリ内の複数ファイルをtar
で固めて(tar ball
ということがある、固めるだけで圧縮はされていない、所謂アーカイブ)から、gzip
で圧縮という処理を上記コマンドとオプションでまとめてできる。
ディレクトリではなく、複数ファイルをtar.gzとして固めたい場合は以下
tar -zcvf compressed.tar.gz file1 file2 file3 dir1 *.sh
※ディレクトリも記述可
.xz
のほうが圧縮率が高いがあまり使われているのは見たことがない。
tar cJvf compressed.tar.xz target_dir
-
compressed.tar.xz
: 圧縮後のファイル名(末尾の.tar.xz
まで記述) -
target_dir
: 圧縮対象ファイルが格納されているディレクトリパス
解凍
tar -zxvf compressed.tar.gz
-
compressed.tar.gz
: 対象のtar.gz
ファイルパス
tar xvf compressed.tar.xz
-
compressed.tar.xz
: 対象のtar.xz
ファイルパス
オプション
option | full name | mean |
---|---|---|
-z | --gzip | gzip形式であることを指定 |
-c | --create | 新しく圧縮ファイルをつくる |
-v | --verbose | 処理結果を出力 |
-f | --file | 圧縮ファイルの名前 |
-x | --extract | 圧縮ファイルからファイルを取り出す |
-t | --list | アーカイブの内容の一覧を表示する |