オリジナルファイルと別名でtar archive作るとき
./dir/hogeというファイルがあって、これをtarで固める。
% find dir dir dir/hoge % tar zcf out.tgz dir % tar tf out.tgz dir/ dir/hoge
(あまりないかもしれないけど)このhogeを、そのままの名前でなくて別名でアーカイブしたいとき。
一時的に、直接hogeをリネームしてもいいんだけど、いろんな理由でリネームをしたくない時がある。
そんなとき
% mkdir sym % cd sym && ln -s ../dir/* . % mv hoge fuga % cd .. % tar zchf out.tgz sym % rm -r sym % tar zxf out.tgz % cd sym && ls -l | cut -d' ' -f1 合計 -rw-r--r--
という感じ。
要は別ディレクトリから元ファイルにシンボリックリンク張って、そのリンクのファイル名を変えよう、ということ。
だけど、そのままアーカイブするとリンク情報がそのままアーカイブされてしまうので、tarのオプションに'-h'(--dereference)を付けてシンボリックリンクを辿らせる。
もちろん元々別にシンボリックリンクをアーカイブしたかったのだったらできない。ハードリンクでも張って--hard-dereference付けてもよいけれど。