【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件目指す!!!
よろしければ、スキボタン及びサポートお願いします。勉強の励みになります。