見出し画像

【Linux Essentials】ファイルやディレクトリの圧縮と展開コマンドの展開とオプション

こんにちは、インフラエンジニアとして入社までのカウントダウンが5日となった、ゆうたです。
今日は、ファイルとディレクトリの圧縮と展開について、コマンドとオプションを整理します。
Linuxで使用される圧縮形式には複数の型があるのですが、どんなファイルに何が対応しているか整理できればと思います。
(問題繰り返しても中々覚えてくれない、個人的に苦手)


1ファイルの圧縮と解凍

1−1 .gz形式の圧縮と解凍

圧縮
gzipコマンドとgunzipコマンドは、末尾が「.gz」となります。
書式は、gzip ファイル名 で表示されます。
 下記に「.gz形式」でファイルを圧縮したものを載せました。

gzip形式で圧縮

画像の解説
1行目:cpコマンドで、/etc/services ファイルをコピーしました。
2〜3行目:ls-lで、ファイルサイズを表示しました。そうすると、元のサイズが、12813バイトであることがわかりました。
4行目:gzip services で、servicesファイルをgzipコマンドで圧縮しています。
5〜6行目:ls -l servicesをすると存在しないと怒られました。
7〜8行目:ls- l  services.gzで、圧縮されたであろう、services.gzファイルのファイルサイズを確認すると、5379バイトであることが判明しました。
無事に圧縮されているようです。

解凍
圧縮されたgzファイルを解凍するために、gunzipファイルを使います。
書式 gunzip 圧縮ファイル名 で行います。
下記で、元のサイズに戻っています。

gzファイルの解凍

1−2 zipコマンドとunzipコマンド

圧縮
gzipコマンドと続き、zipコマンドでも圧縮を行えます。
zipコマンドでは、ファイルだけでなく、ディレクトリの圧縮も可能となります。
書式
ファイルの圧縮時
zip 圧縮ファイル名 ファイル名かディレクトリ
gzipコマンドと異なり、圧縮後のファイル名の指定も必須です。

zipコマンドで圧縮

画像の解説
1行目:zip services.zip services
新しい圧縮後のファイル名をservices.zip と指定しました。
2行目:58%圧縮されたと言われています。

gzipコマンドと異なり、圧縮前のファイルと圧縮後のファイル両方残ります。
下記の画像は、両方のサイズが見れるので、残っていることが確認できます。

元のファイルと圧縮後のファイル

解凍
圧縮されたzip形式のファイルを解凍するために、unzipコマンドを使います。
書式 unzip 圧縮ファイル名 で行います。
下記で、元のサイズに戻っています。
今回の場合は、すでにファイルが存在するため、yで上書きできます。

zip形式のファイルの解凍

2ディレクトリの圧縮

2−1 tarコマンドとアーカイブ

gzipコマンドでは、ディレクトリを圧縮しようとするとエラーが起きてしまいます。tar コマンドを使用すると、ディレクトリを圧縮できます。

gzipコマンドでdiskmen.shを圧縮

手順としては、まず、アーカイブを作成し、その後に圧縮や展開ができます。
ディレクトリの場合は、tarコマンドで1つのファイルにアーカイブでまとめてからの作業になるようです。

書式
tarコマンドでは、 tarコマンド cvf アーカイブファイル名 ディレクトリ名 で使用します。

アーカイブで、aarchiveを作成


複数のまとめられたファイルのことをアーカイブと呼びます。
アーカイブを作成するために、tarコマンドを使用するのですが、オプションでcvfをつけなければなりません。
下記にtarコマンドの主要オプション一覧を掲載します。
今回は、cvfオプションを指定しています。

tarコマンド主要オプション一覧
c アーカイブを作成
x アーカイブを展開
v 詳細を表示
f アーカイブファイルを指定
j bzip2圧縮を利用
J xz圧縮を利用
z gzip圧縮を利用

圧縮
先ほど作成した、以前に練習して作成した時の、archiveを圧縮してみたいと思います。
圧縮するためには、gzip archive.tar と入力します。
(テキストに習ってgzipコマンドを入力しているのですが、gzip形式であることを何みたらわかりますか?わかる方、教えてください。。)
ls-lコマンドで、圧縮前後のファイルサイズを見ると、半分以下の大きさになっていることがわかります。

archive.tarを圧縮

展開
アーカイブの展開するための書式は、tar xvf アーカイブ名 となります。
オプションは、上にも一覧がありますが、
xで、アーカイブを展開し、vで、アーカイブの詳細を表示、fでアーカイブファイルを指定しています。
aarchiveという名前のアーカイブを作成したようですが、エラーが起き、ディレクトリです と表示されてしまいましたので、
barchive という名前のアーカイブを作成し直しました。

barchiveの展開

まとめ

ファイルの展開と圧縮、ディレクトリの圧縮展開について触れました。

ファイルは、gz形式、zip形式があり、末尾が、.gzや.zipとなる。
それぞれの末尾に対応した圧縮したファイルは、unzipコマンドで解凍できます。
ディレクトリの場合は、.gzでは圧縮解凍できないので、一度tarコマンドで、アーカイブしてから行います。

ファイルの圧縮展開にbzip形式もあることは、ping-tを解いて存在は知っていて、
bzipについてもそのうち追記したい。

この記事が気に入ったらサポートをしてみませんか?