シンボリックリンクだけを表示させる。

以前のエントリーでも書いたけど、設定ファイルはだいたいDropboxに置いてシンボリックリンクをホームに置いている。
UbuntuでDropboxを使ってGoogle Chromeの設定を同期する - SEにはなりたくない情報系の大学生
Ubuntu 10.04 Lucid Lynx をインストールして環境を整えた。(備忘録) - SEにはなりたくない情報系の大学生
そこで、ふとシンボリックリンクだけを表示させたくなった。
lsのオプションとかでできるかと思ったけどないみたい。
そこで以下のようにした。

% ls -al | grep lrwx | cut -d' ' -f 13

実行結果

.Xmodmap
.Xresources
.aliases.sh
.emacs
.emacs.d
.fonts
.hatena
.mew.el
.screenrc
.vimrc
.zshrc
bin
howm
shutter

シンボリックリンクパーミッションのところが lrwxrwxrwx となるのでそれを利用。grepで最初の部分にマッチさせる。cutは指定した部分の文字列を切り出して表示するコマンド。デフォルトでタブが区切り文字になるので、-dオプションでスペースを区切り文字にする。ファイル名は13番目のフィールドなので-f 13と指定。
他にもperlで書いてみた。

% perl -e 'for(`ls -al`){if(/lrwx/){@a=split(/\s/);print"$a[12]\n"}}'

目的は達成できたけど、もっとうまいやり方がある気がする。