Monday, August 16, 2010 / MacOS

Mac OS X でも GNU Tar を使おう

Macのターミナルで作業しているコマンドのオプションが微妙に Ubuntu とかの Linux と違って困ることがある。 たとえば -i オプションがないとか。 今回は tar の exclude オプションがどうしても使いたくなったので、 GNU Tar を入れることにした。 実際にやってみると configure , make するだけの話であった。

macos 版の tar ではアーカイブに含まれてしまう .DS_Store ファイルが GNU版 tar なら何も指定しなくても除外してくれると思う。

標準で入っているのは bsdtar

$ /usr/bin/tar --version
bsdtar 2.6.2 - libarchive 2.6.2

GNU Tar インストールログ

GNU Tar のページにアクセスして、tar-1.23.tar.gz を入手。

$ tar xfz tar-1.23.tar.gz
$ cd tar-1.23
$ ./configure
$ make

src/tar に実行ファイルができているので、$HOME/bin/tar など パスの通っている場所にコピーして chmod u+x tar しておしまい。 ターミナルを再起動して tar コマンドが GNU tar にかわったかを確認。

$ tar --version
tar (GNU tar) 1.23
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.

exclude オプションがあるとうれしいこと

subversion を使っていると checkout してきたディレクトリに .svn というSubversionの管理用ディレクトリがたくさんできる。 これを除外してアーカイブを作りたいことが多いのだが...このとき

$ tar cf foo.tar ./foo --exclude ".svn"

で済む。