symlinks - シンボリックリンクを管理する

symlinksはディレクトリ中のシンボリックリンクを管理する小さなプログラム。
リストしたり、絶対パス相対パス変換をしたり、リンク先が存在しないシンボリックリンクを削除したりする。
クラッシュ復旧後など、存在すべきシンボリックリンクが存在しなくて困る場合にそなえて、予めリストを作成しておくといい。インストールはapt一発。

$ apt-get install symlinks

俺の場合、/m以下にデータディスクをマウントしているのでこう。-rで再帰的にサブディレクトリを探索する。-vをつけないと相対パスシンボリックリンクは表示しないので注意。

$ symlinks -r -v / /m > /log/symlinks

$ ln -s ~/.emacs dotemacs
$ ln -s ../../r/.emacs dotemacs.relative
$ echo foo > foo
$ ln -s foo foo.link
$ ls -l
合計 4
lrwxrwxrwx 1 rubikitch users 24 2007-10-07 19:24 dotemacs -> /m/home/rubikitch/.emacs
lrwxrwxrwx 1 rubikitch users 14 2007-10-07 19:24 dotemacs.relative -> ../../r/.emacs
-rw-r--r-- 1 rubikitch users  4 2007-10-07 19:24 foo
lrwxrwxrwx 1 rubikitch users  3 2007-10-07 19:24 foo.link -> foo
$ symlinks .
other_fs: /tmp/tmpdir00/dotemacs.relative -> ../../r/.emacs
other_fs: /tmp/tmpdir00/dotemacs -> /m/home/rubikitch/.emacs
$ symlinks -v .
relative: /tmp/tmpdir00/foo.link -> foo
other_fs: /tmp/tmpdir00/dotemacs.relative -> ../../r/.emacs
other_fs: /tmp/tmpdir00/dotemacs -> /m/home/rubikitch/.emacs