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 | アーカイブの内容の一覧を表示する |