この記事では、Linuxでよく使う圧縮・解凍コマンドについてまとめています。
紹介する内容は次の2つです。
1 ファイルの圧縮・解凍コマンド( gzip、bzip2 )
2 ディレクトリの圧縮・解凍コマンド( tar )
それではみていきましょう。
1 ファイルの圧縮・解凍コマンド( gzip、bzip2 )
ファイルを圧縮・解凍するコマンドです。標準的な「gzip」とより高圧縮が可能な「bzip2」の2つを紹介しますが、はじめにそれぞれのコマンドに共通するオプションをまとめておきます。
よく使うものだけ抽出しました。
オプション | 意味 |
-c | 結果を標準出力へ出力する(リダイレクトする際に使用) |
-k | 圧縮前/伸張前のファイルを残す |
-f | ファイルを強制的に上書きする |
-d | 伸長(展開)を行う |
-r | 再帰的な処理(ディレクトリ内のファイルを1つずつ圧縮) ※bzip2コマンドでは使用不可 |
gzipコマンド
gzip [オプション] ファイル名
具体的なコマンド実行例と処理結果についてはこのようになります。
----------- 圧縮コマンド ---------------
1 text.txtを圧縮してtext.txt.gzを作成する
gzip text.txt
2 text.txtを削除せずにtext.txt.gzを作成する
gzip -k text.txt
3 ディレクトリ内のファイルを全て圧縮する
gzip -r /home/libre/tmp
----------- 解凍コマンド ---------------
1 text.txt.gzを解凍する
gzip -d text.txt.gz
2 text.txt.gzを削除せずに解凍する(リダイレクト)
gzip -cd text.txt.gz > text.txt
3 ディレクトリ内のファイルを全て解凍する
gzip -rd /home/libre/tmp
bzip2コマンド
使い方はgzipコマンドと同様です。(※オプション:-r は使用できません。)
違いは圧縮率になります。bzip2のほうがやや時間はかかりますが、高圧縮が可能です。また、拡張子も「.gz」ではなく「.bz2」となります。
2 ディレクトリの圧縮・解凍コマンド( tar )
ディレクトリの圧縮・解凍で使用するのが tarコマンドです。
こちらについてもまずはよく使用するオプションをまとめた後で具体的なコマンドをみていきます。
共通オプション | |
-f | アーカイブファイル名を指定 |
-v | アーカイブ結果を表示する |
-C | カレントディレクトリを指定したディレクトリに変更してから実行 (アーカイブ先・展開先の指定) |
圧縮オプション | |
-c | アーカイブを新規に作成する |
-z | gzip形式(.gz)で圧縮する |
-j | bzip形式(.bz2)で圧縮する |
解凍オプション | |
-x | 解凍(伸長)する |
tarコマンド
圧縮コマンド
tar [オプション] 圧縮後ディレクトリ 圧縮元ディレクトリ
解凍コマンド
tar [オプション] 圧縮ディレクトリ 展開先ディレクトリ
具体的なコマンド実行例と処理結果についてはこのようになります。
----------- 圧縮コマンド ---------------
1 ディレクトリの圧縮(gzip形式)
tar zcf sample_dir.tar.gz sample_dir
2 ディレクトリの圧縮(bzip2形式)
tar jcf sample_dir.tar.bz2 sample_dir
3 ディレクトリを絶対パスでアーカイブする(ファルダの階層ごとアーカイブされる)
tar zcf sample_dir.tar.gz /home/libre/test/sample_dir
4 パス先のディレクトリのみをアーカイブ圧縮する(-Cオプション)
tar zcf sample_dir.tar.gz -C /home/libre/test/ sample_dir
----------- 解凍コマンド ---------------
1 ディレクトリの解凍(gzip形式)
tar xvf sample_dir.tar.gz
2 ディレクトリの解凍(bzip2形式)
tar xvf sample_dir.tar.bz2
3 展開先を指定する(-Cオプション)
tar xvf sample_dir.tar.gz -C /home/libre/
tarコマンドでディレクトリを圧縮してアーカイブを作成する際には、パスの指定に気を付ける必要があります。不必要に絶対パスで圧縮してしまうと、展開した際にもとの階層を保持したまま展開されてしまいます。
圧縮したいディレクトリがカレントディレクトリにない場合は -C オプションを使用しましょう。
※ -C 指定するパス/ のあとには半角スペースを忘れないように注意してください。
以上です。
参考になればうれしいです。
コメント