猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

Linux

アーカイブと圧縮の基本(tar・gzip)

投稿日:2013年1月1日 更新日:

gzipで圧縮

圧縮にはgzipコマンドを使用します。
gzipコマンドで圧縮すると、拡張しに.gzが付加されて圧縮されます。

#gzip file.txt 圧縮
#gunzip file.txt.gz 解凍

ディレクトリを指定して圧縮・解凍するには-rオプションを使用します。
dir
└a.txt
└b.txt
といった構成でファイルがある場合、
gzip -r dir コマンドでファイルを全て圧縮できます。

# gzip -r dir
# ls -lat dir
合計 32
drwxr-xr-x 2 root root 4096 12月 25 07:34 .
drwxr-xr-x 3 root root 4096 12月 25 07:33 ..
-rw-r--r-- 1 root root   30 12月 25 07:08 b.txt.gz
-rw-r--r-- 1 root root   31 12月 25 07:07 a.txt.gz

みての通り、拡張子にgzがつき圧縮されています。gzipコマンドでは、ファイルが個別に圧縮されるだけです。
1つのファイルとして圧縮することはできません。

gunzipで解凍

gzipと同様にディレクトリを指定する場合は-rを使用します。

# gunzip -r dir
# ls -lat dir
合計 32
drwxr-xr-x 2 root root 4096 12月 25 07:37 .
drwxr-xr-x 3 root root 4096 12月 25 07:33 ..
-rw-r--r-- 1 root root    7 12月 25 07:08 b.txt
-rw-r--r-- 1 root root    7 12月 25 07:07 a.txt

tarでアーカイブする

1つのファイルにする(アーカイブする)には別のtarコマンドを使用します。
tarのオプションは1つ目の文字が第1オプションで、その後に続く文字列は第2オプションになります。

アーカイブを作成

tar cf [アーカイブファイル名] [ディレクトリ・ファイル名]
とします。
c アーカイブを新規に作成する 。compressの略。
-f, –file ファイル・ディレクトリの指定

#tar cf dir.tar dir

gzipだとの違いは、dir.tar.gzという1つのファイルなので、cdコマンドで中は確認できません。

アーカイブを展開

tar xf [アーカイブファイル名]
とします。
x アーカイブから取り出す。extractの略。
-f, –file ファイル・ディレクトリの指定

#tar xf dir.tar

アーカイブはきえません。

アーカイブを確認する

cdでは入れないので確認にはtar tf [アーカイブファイル名]とします。
t アーカイブ内の一覧表示。恐らくtreeの略。
-f, –file ファイル・ディレクトリの指定

# tar tf dir.tar
dir/
dir/b.txt
dir/a.txt

アーカイブにファイルを追加

tar rvf [アーカイブファイル名] [追加ファイル名]
r アーカイブの最後に追加。recompress?適当
-f, –file ファイル名
dir.tar
└a.txt
└b.txt
というアーカイブに
dir.tar
└c.txt
を追加する場合

# tar rf dir.tar dir/c.txt
# tar tf dir.tar
dir/
dir/b.txt
dir/a.txt
dir/c.txt

注意しなくてはいけないのは、
dir.tar
└a.txt
└b.txt
というアーカイブに
c.txt
を追加すると

# tar rf dir.tar c.txt
# tar tf dir.tar
dir/
dir/b.txt
dir/a.txt
c.txt

となることです。
アーカイブに入る階層が変わってきてしまいます。

アーカイブから特定のファイルを抜き出す

tar xf [アーカイブファイル名] [取り出したいファイル名(アーカイブ内のパス)]

#tar xf dir.tar dir/a.txt

ファイルを抜き出してもアーカイブから消えません。

アーカイブと圧縮

第2オプションにzをつけるとgzipを通して処理され圧縮もされます。
第2vオプションもつけて、処理したファイルの一覧も表示できます。
-z, –gzip, –ungzip gzipを通して処理する
-v, –verbose 処理したファイルの一覧を詳細に表示する

# tar cvzf dir.tar dir
dir/
dir/b.txt
dir/a.txt
dir/c.txt
# ls -lat
合計 32
drwxr-xr-x  3 root root 4096 12月 25 08:03 .
-rw-r--r--  1 root root  <strong>244</strong> 12月 25 08:03 dir.tar





drwxr-xr-x  2 root root 4096 / 12月 25 07:59 dir
drwxr-x--- 16 root root 4096 12月 25 07:07 ..

gzはついていませんが、圧縮されているのがわかります。
わかりやすいように、dir.tar.gzというアーカイブ名にしてもいいかもしれません。

Gooleアドセンス用336

Gooleアドセンス用336

-Linux
-

執筆者:

関連記事

linux

digコマンドでDNSを調査する

digコマンドを使用すれば、指定したDNSサーバーに問い合わせができます。 dig @[DNSサーバー] [調べたいドメイン] です。 下記は8.8.8.8(googleDNS)にntp.nict.j …

linux

viの基本的な操作方法

linuxって初めての方にとっては敷居がちょっと高いと感じます。でも最近はフリーのVmware Playerを使ってだれでもWindows上で動かすことができます。結構サーバーとしては利用していること …

linux

viでコピー(ヤンク)&ペーストをする

省略された言葉でも、本当の意味を知っていけば、コマンドだって簡単に覚えていけます。 Linuxではコピーのことをヤンク(yank)と言います。クリップボードとう機能はなく、ヤンク(yank)というバッ …

linux

SSHのログインが遅い

感じたことが無いとは言わせまん :x002: 基本的にはSSHでアクセスしようとしているクライアントの名前解決ができずに時間がかかっているだけdす。 以下対応策です。 INDEX1 hostsの設定2 …

linux

VMware Playerで仮想ネットワークエディタを使用する

仮想ネットワークエディタを使用するとそれぞれのアダプターのネットワークが一目でわかり、 しかも設定の変更も簡単です。 Playerには梱包されていないので、Workstationの評価版のインストーラ …