tar
Solaris
Linuxコマンド

Solarisのコマンド(tarのみ)

仕事でSolarisを使用する機会があり、Linuxとはコマンドが微妙に違っていて難しかったので少しずつメモしていこうと思います。

Solarisとは

サン・マイクロシステムズによって開発されたOSでUNIXとして認定を受けています。
オラクルに買収されて以降、オラクルによって開発されています。
ただ、2017年9月にオラクルが Solaris 開発の大半の社員を解雇したという報道がされており、先があるOSかというと微妙なきがします。

コマンドの違い

tar

Unix系のOSを使用するときに、必ず使用するといっても過言ではない書庫を作成するコマンド。
使用することにより、複数のファイルを1つにまとめることができ便利です。必要ないファイルをまとめて保存したり、バックアップしたりするために使用されると思います。
gzip圧縮と同時しているのが多い。

RedHat等では「-z」オプションを使用すると書庫化と同時にgzip圧縮してくれるのだが、Solaris10未満では対応していませんでした。
※Solaris11では「-z」オプションに対応しているみたいなので安心してください。

RedHat、Solaris11では、以下のコマンドで書庫を作成して圧縮できます。

$ tar -zcf dir.tar.gz /dir

では、「-z」オプションのないSolaris10未満ではどうするのか。

■gzipコマンドを使用
tarコマンドで書庫化してから、gzipコマンドで圧縮する

$ tar -cf dir.tar ./dir
$ gzip dir.tar
#こっちでもできる
$ tar cvf - ./dir | gzip -c > dir.tar.gz

めんどうだが、確実

■gtarを使用する
LinuxのtarコマンドはGNU tarである。そのGNU tarがSolarisには標準でインストールされているのでこちらを使用すると同じように使用できる。
「/usr/sfw/bin/gtar」にインストールされているはずである。

$ /usr/sfw/bin/gtar -zcf dir.tar.gz ./dir

また、違いといえば、ファイル名の長さの上限もある。
Solarisのtarでは、ファイル名は100文字までなら対応しているが、100文字を超えるとエラーとなり書庫の対象外となる。
これもgtarを使用すると回避できる。
もしくは、「-E」オプションを使用することでファイル名の制限なしで書庫化することができる。
ただし、「-E」オプションを使用すると拡張ヘッダーが追記されてしまう。そのため、展開する側のOSもその拡張ヘッダに対応していないと展開できない。
そんなことをいちいち調査しないといけないぐらいなら、gtarを使用すればよいのではないかと思います。

また、なにか気づけば書いていこうと思います。