見出し画像

【50】【Linux】ファイルの圧縮 tarコマンド

この記事を読めば、ファイル圧縮、tarコマンドの理解を深めることができます。
docker内のデータをバックアップする際に、tarコマンドを使います。
何気なく使っているけどtarコマンドって何?となっている方もいるでしょう。
LinuCレベル1範囲でt解説します。

ファイルの圧縮、解凍

tarコマンドの前にまずLinuxにおけるファイルの解凍、圧縮について説明します。

gzip
bzip2
xz

ファイルを解凍、圧縮する際には上記のコマンドを使います。
圧縮効率

xz  >  bzip2  > gzip

処理時間

xz  > bzip2  >  gzip

つまり、圧縮効率は一番xzコマンドが高いが、処理時間が1番長い
処理時間はgzipが1番早いが圧縮効率は1番悪い。
という特色があります。

gzipコマンド

ファイルの圧縮
gzip foo.txt
ファイルの解凍
gzip -d foo.txt.gz
ungzip foo.txt.bz2
圧縮した後、元のファイルを削除しない
gzip -k foo.txt
標準出力へ出力する
gzip -c foo.txt
ディレクトリ内の全てのファイルを圧縮する
gzip -r foo
ディレクトリ自身を圧縮しない点に注意!!
後述のtarコマンドでファイル自身の圧縮を行う。

bzip2コマンド

ファイルの圧縮
bzip2 foo.txt
ファイルの解凍
bzip2 -d foo.txt.bz2
unbzip2 foo.txt.bz2
圧縮した後、元のファイルを削除しない
bzip2 -k foo.txt
標準出力へ出力する
bzip2 -c foo.txt
ディレクトリ内の全てのファイルを圧縮する
bzip2 -r foo
ディレクトリ自身を圧縮しない点に注意

xzコマンド

ファイルの圧縮
xz foo.txt
ファイルの解凍
xz -d foo.txt.xz
unxz foo.txt.bz2
圧縮した後、元のファイルを削除しない
xz -k foo.txt
ディレクトリ内の全てのファイルを圧縮する
xz -r foo
ディレクトリ自身を圧縮しない点に注意

-rオプションとtarコマンド

先程説明した、-rオプションはディレクトリ内のファイル全てを圧縮します。
しかし、ディレクトリ自身は圧縮しません。
ディレクトリ自身を圧縮するためには、tarコマンドを使います。

アーカイブ

複数のファイルをまとめた単位をアーカイブといいます。
ディレクトリ単位で圧縮することは、一つのアーカイブファイルを作成することです。

tarコマンドのオプション

c
アーカイブを作成
v
詳細な情報を表示
f
アーカイブファイル名を指定
x
展開する。
z
gzipによる展開、圧縮
j
bzip2による展開、圧縮
J
xzによる展開、圧縮
-C
解凍先を指定

アーカイブ内のファイルの確認、追加、削除

t
アーカイブの内容を確認する
r
ファイルを追加する
u
アーカイブ内にある同名のファイルで新しいものだけ追加する
--delete
アーカイブ内のファイルを削除する
N
指定した日付より新しいデータのみを対象とする

実例:testディレクトリをtest.tarファイルとして作成し、詳細な情報を表示する。

サンプルの作成
mkdir test
touch test/{1,2,3,4,5}.txt

tar cvf test.tar test

実例:test.tarの中のファイルの詳細な情報を表示する。

tar tvf test.tar

実例:test.tarファイルをopenディレクトリに展開し、詳細な情報を表示する。

mkdir open
tar xvf test.tar -C open

最近のtarコマンド

最近のtarコマンドは圧縮オプション(z/j/J)を付けなくても適切に処理されます。
とはいえ、LinucC試験では明確に指定したいたほうがいいでしょう。

Linuxに関する記事一覧

参考文献

Ping_T
Linux教科書 LinuCレベル1 Version 10.0対応

 最後に
私がブログを書く目的は、素晴らしい本や、素晴らしい方々の技術記事を知って頂きたいからです。ぜひ、上記の参考文献を見て下さい。(noteなので広告とかは一切ありません。)

現在、株式会社grabssに行くために最後の悪あがきをしています!!
現在の進行状況
50件目投稿。目標到達!!。
20日までに100件目指す!!!

よろしければ、スキボタン及びサポートお願いします。勉強の励みになります。

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