[Linux] tarコマンドの小技

以前、Qiitaに投稿した記事に追記しました。

tarコマンドはファイル、ディレクトリにアーカイブ、アンアーカイブだけではなく、実際のアーカイブ以外の処理を行うことができます。

ここでは以下の5つの小技を紹介します。

  1. tarファイルのサイズをざっくり見積もる
  2. tar.gzファイルのサイズを見積もる
  3. カレントディレクトリとtarファイルの中身を比較する
  4. 特定のディレクトリ、ファイルだけ解凍する
  5. tarファイルの中身を確認する

 

tarファイルのサイズをざっくり見積もる

$ tar cf - /path/to/archive/ | wc -c

ハイフン(-)で標準出力に渡します。

これをwcの-cオプションでバイトカウントすることで、tarファイルのサイズを取得します。

 

tar.gzファイルのサイズを見積もる

gzで圧縮する場合の見積もりです。

$ tar czf - /path/to/archive/ | wc -c

 

カレントディレクトリとtarファイルの中身を比較する

$ tar dfz archive.tar.gz

dオプションで比較を行うことができます

実行例

$ mkdir test
$ touch test/test.{1..3}
$ tar cfz test.tar.gz test
$ tar dfz test.tar.gz        #変更がないのでなにも返らない
$ echo hoge > test/test.1    #test.1を変更する
$ tar dfz test.tar.gz        #変更箇所が表示される
test/test.1: Mod time differs
test/test.1: Size differs

 

特定のディレクトリ、ファイルだけ解凍する

$ tar xvf archive.tar path/to/directory/ or path/to/file

 

tarファイルの中身を確認する

その1(t オプションを利用する方法)

$ tar tvf archive.tar.gz

その2(lessを利用する方法)

$ less archive.tar.gz