🐸
GNU tar の a オプション便利
↓こんな感じに a
を付けて実行すると拡張子を見て勝手にアーカイブの圧縮方法を変えてくれるのね。
tar cfa foo.tar foo/
tar cfa foo.tar.gz foo/
tar cfa foo.tar.bz2 foo/
tar cfa foo.tar.xz foo/
tar cfa foo.tar.Z foo/
tar cfa foo.zip foo/
tar cfa foo.7z foo/
確認のために ls してみるとファイルサイズが異なることから別ファイルが出来てるのが分かる。
$ ls -l foo.*
-rw-r--r-- 1 kawaz staff 1032 2021-01-22 03:12:46.131 foo.7z
-rw-r--r-- 1 kawaz staff 1800 2021-01-22 03:13:32.540 foo.tar.Z
-rw-r--r-- 1 kawaz staff 1114 2021-01-22 03:01:41.769 foo.tar.bz2
-rw-r--r-- 1 kawaz staff 923 2021-01-22 03:01:44.975 foo.tar.gz
-rw-r--r-- 1 kawaz staff 908 2021-01-22 03:08:26.381 foo.tar.xz
-rw-r--r-- 1 kawaz staff 4032 2021-01-22 03:10:19.265 foo.zip
ちなみに展開するときは tar x
にぶち込めば(こちらはファイル名ではなく)ファイルヘッダを見て、適切に処理してくれる。
便利。
Discussion
TopicにGNUとあるのですが、Ubuntu の GNU tar で試すと .7z と .zip は非対応で、tarとして処理されていました。
bsdtar (libarchive-tools 所蔵) だと記事に書かれた通りうまくいきました。