2024年08月14日
【Linux】ファイル圧縮・解凍(gzip)ファイル編
Linuxでファイルを圧縮するにはgzipコマンドを利用する。
ここでは、ファイルの圧縮・解凍の実例を示す。
(gzipコマンドでは、フォルダ(ディレクトリ)の圧縮はできないため、いったんtarファイルにまとめてから(アーカイブ化してから)、圧縮することとなるが、ここでは取り扱わない。)
手順1から4で、ファイル準備の確認、圧縮および解凍を示す。
1.ファイルを用意(および確認)
$ ls -l ./kaisou1/kaisou2/航空情報202312.txt
-rw-r--r-- 1 bronte bronte 2444 8月 14 15:29 ./kaisou1/kaisou2/航空情報202312.txt
8月14日の15:29に作成された「航空情報202312.txt」というテキスとファイルを圧縮の対象とします。
2.圧縮を実行(および確認)
$ gzip ./kaisou1/kaisou2/航空情報202312.txt
$ ls -l ./kaisou1/kaisou2/航空情報202312*
-rw-r--r-- 1 bronte bronte 1635 8月 14 15:29 航空情報202312.txt.gz
実行時にメッセージは表示されない。「ls」コマンドで確認すると、指定したファイルのディレクトリに、拡張子gzの圧縮ファイルが作成されていることがわかる。ファイル名は元のファイル名の末尾に「.gz」が付与されたものとなる。また、ファイルサイズも圧縮されたことにより小さくなっていることがわかる。
留意したい点としては、圧縮ファイルの作成と同時に、元のファイルは削除されるということが挙げられる。
元のファイルを残すには「-c」オプションを付与して実行する。
$ gzip -c ./kaisou1/kaisou2/航空情報202312.txt > ZGIPテスト.txt.gz
$ ls -l ZGIPテスト.txt.gz
-rw-r--r-- 1 bronte bronte 1635 8月 14 15:54 ZGIPテスト.txt.gz
カレントディレクトリに圧縮ファイルを「 ZGIPテスト.txt.gz」という名称で出力される。
「-c」オプションはコンソール出力するものであり、それを「>」を記述しファイル出力する。
(「>」を指定しないと、意味不な文字列がコンソール出力されてしまう。。。)
「>」で指定する圧縮ファイル名は、通常は対象のファイ名と同じにするのがよい(ここでは違いが分かるように変えている)。拡張子は「gz」でなくとも大丈夫ではあるが、「使うべきではない」とmanコマンドによるマニュアルに記載されている。
3.圧縮ファイルの中身確認
$ zcat ZGIPテスト.txt.gz | head -4
航空情報 2023年12月号 税込価格1,540円
特集@ 海上自衛隊第61航空隊
特集A 航空自衛隊 Fの系譜
$ zcat ZGIPテスト.txt.gz | wc -l
38
対象がテキストファイルであれば「zcat」コマンドで圧縮ファイルのままで中身を確認することができる。
一つ目は「head」コマンドと組み合わせて先頭4行を表示させている。2つ目は「wc」コマンドと組み合わせてファイルの行数を表示させている。
通常のテキストファイルに対する「more」「less」といったコマンドに対応する「zmore」「zless」も利用可能である。「gzip -dc 圧縮ファイル名」でも可能。
なお、テキストファイルがSJISなどは表示させると文字化けする(通常のテキストファイルと同様)。
4.解凍(および確認)
$ gzip -d ZGIPテスト.txt.gz
$ ls -l ZGIPテスト.txt*
-rw-r--r-- 1 bronte bronte 2444 8月 14 15:54 ZGIPテスト.txt
圧縮ファイル(gz)が削除され、ファイルが作成された。ファイル名は圧縮ファイルの拡張子gzがとれたものになっている。ファイルのタイムスタンプは圧縮ファイル作成時のものである。
ファイル名やタイムスタンプを保持するには「-N」オプションをつけて実行する。
$ gzip -dN ZGIPテスト.txt.gz
$ ls -l 航空情報*
-rw-r--r-- 1 bronte bronte 2444 8月 14 15:29 航空情報202312.txt
タイプスタンプも元のファイルのタイムスタンプが保持されている。
ファイル名は保持されているがが、ファイルのディレクトリは保持されていない。
また、ファイルが既に存在している場合、メッセージが表示され上書きしてよいかy/nを入力する必要がある。実行時に「-f」オプションを付与すると確認で止まることなく上書きで実行される。
ここでは、ファイルの圧縮・解凍の実例を示す。
(gzipコマンドでは、フォルダ(ディレクトリ)の圧縮はできないため、いったんtarファイルにまとめてから(アーカイブ化してから)、圧縮することとなるが、ここでは取り扱わない。)
手順1から4で、ファイル準備の確認、圧縮および解凍を示す。
1.ファイルを用意(および確認)
$ ls -l ./kaisou1/kaisou2/航空情報202312.txt
-rw-r--r-- 1 bronte bronte 2444 8月 14 15:29 ./kaisou1/kaisou2/航空情報202312.txt
8月14日の15:29に作成された「航空情報202312.txt」というテキスとファイルを圧縮の対象とします。
2.圧縮を実行(および確認)
$ gzip ./kaisou1/kaisou2/航空情報202312.txt
$ ls -l ./kaisou1/kaisou2/航空情報202312*
-rw-r--r-- 1 bronte bronte 1635 8月 14 15:29 航空情報202312.txt.gz
実行時にメッセージは表示されない。「ls」コマンドで確認すると、指定したファイルのディレクトリに、拡張子gzの圧縮ファイルが作成されていることがわかる。ファイル名は元のファイル名の末尾に「.gz」が付与されたものとなる。また、ファイルサイズも圧縮されたことにより小さくなっていることがわかる。
留意したい点としては、圧縮ファイルの作成と同時に、元のファイルは削除されるということが挙げられる。
元のファイルを残すには「-c」オプションを付与して実行する。
$ gzip -c ./kaisou1/kaisou2/航空情報202312.txt > ZGIPテスト.txt.gz
$ ls -l ZGIPテスト.txt.gz
-rw-r--r-- 1 bronte bronte 1635 8月 14 15:54 ZGIPテスト.txt.gz
カレントディレクトリに圧縮ファイルを「 ZGIPテスト.txt.gz」という名称で出力される。
「-c」オプションはコンソール出力するものであり、それを「>」を記述しファイル出力する。
(「>」を指定しないと、意味不な文字列がコンソール出力されてしまう。。。)
「>」で指定する圧縮ファイル名は、通常は対象のファイ名と同じにするのがよい(ここでは違いが分かるように変えている)。拡張子は「gz」でなくとも大丈夫ではあるが、「使うべきではない」とmanコマンドによるマニュアルに記載されている。
3.圧縮ファイルの中身確認
$ zcat ZGIPテスト.txt.gz | head -4
航空情報 2023年12月号 税込価格1,540円
特集@ 海上自衛隊第61航空隊
特集A 航空自衛隊 Fの系譜
$ zcat ZGIPテスト.txt.gz | wc -l
38
対象がテキストファイルであれば「zcat」コマンドで圧縮ファイルのままで中身を確認することができる。
一つ目は「head」コマンドと組み合わせて先頭4行を表示させている。2つ目は「wc」コマンドと組み合わせてファイルの行数を表示させている。
通常のテキストファイルに対する「more」「less」といったコマンドに対応する「zmore」「zless」も利用可能である。「gzip -dc 圧縮ファイル名」でも可能。
なお、テキストファイルがSJISなどは表示させると文字化けする(通常のテキストファイルと同様)。
4.解凍(および確認)
$ gzip -d ZGIPテスト.txt.gz
$ ls -l ZGIPテスト.txt*
-rw-r--r-- 1 bronte bronte 2444 8月 14 15:54 ZGIPテスト.txt
圧縮ファイル(gz)が削除され、ファイルが作成された。ファイル名は圧縮ファイルの拡張子gzがとれたものになっている。ファイルのタイムスタンプは圧縮ファイル作成時のものである。
ファイル名やタイムスタンプを保持するには「-N」オプションをつけて実行する。
$ gzip -dN ZGIPテスト.txt.gz
$ ls -l 航空情報*
-rw-r--r-- 1 bronte bronte 2444 8月 14 15:29 航空情報202312.txt
タイプスタンプも元のファイルのタイムスタンプが保持されている。
ファイル名は保持されているがが、ファイルのディレクトリは保持されていない。
また、ファイルが既に存在している場合、メッセージが表示され上書きしてよいかy/nを入力する必要がある。実行時に「-f」オプションを付与すると確認で止まることなく上書きで実行される。
(゚∀゚)アヒャ
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/12664063
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック