猫型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

linuxでSSH公開キー認証ユーザーを作成する

INDEX1 目的2 ユーザーの作成3 ユーザーの公開鍵と秘密鍵の作成4 作成した公開鍵をサーバーに配置5 SSH公開キー認証の設定6 rootに昇格可能ユーザーを制限7 追加ユーザーにsudoの設定 …

windows

pingのTTLでOSを判別する

pingのTTLを見ると、簡単なOSの判別が可能です。 これは私のPC(Windows)と、そのPC上で起動させているCentOS(linux)へそれぞれpingを打った時のものです。 TTLが128 …

linux

viのカーソルを先頭や指定行に移動する

gg  先頭に移動 G  最終行へ移動 XG  X行へ移動 行移動する場合は :でコマンドモードに移行して行番号を表示すれば便利です。 :set nu  行番号を表示します :set nonu 行番号 …

linux

E173: 編集すべきファイルが x 個あります

viでE173: 編集すべきファイルが x 個あります と表示されたことはないでしょうか・・・。 vi file.txt ] とタイプミスのために2つのファイルが開いただけでした・・・ 入門vi 第6 …

linux

169.254.0.0 は APIPA (Automatic Private IP Addressing)

routeコマンドをしてみて下さい。 # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use …