Posted at

シンボリックリンクだけ一覧表示

More than 5 years have passed since last update.

最近よく他の人の設定ファイルを試しに使ったりしています。そうすると、$HOME に直で 設定ファイルをおいておくよりも(git clone などで)どこか適当な場所に落とした上でシンボリックリンクを張るほうが便利です。

で、まぁここまではたぶん他の人もよくやってることだと思います。なんですが、私はここでしょっちゅうシンボリックリンクを張り間違えます。例えば、物覚えが悪いもので、つい引数を逆に書いたりしてしまいます:

% ln -sf $HOME/.vimrc $HOME/dotfiles/someones-dotfiles/.vimrc

…あちゃー。せっかく落としてきた他の人のファイルを上書きしてしまいました(-f なんて付けるから… というツッコミはなしで)。

ということで、最近はこまめに ls -la で確かめるようにしているんですがいい加減目ぐれっぷするのもちょっと頭が悪い感じがしてきました。ちゃんと grep してみましょう。

% ls -la | grep "->"

grep: invalid option -- '>'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.

……あちゃちゃー><

これ、何が悪いか最初全く分からなかったんですが、エラー文の通り "->" がオプション扱いされてしまっているんですよね(かなり長いこと「ちゃんとダブルクォーテーションで括ってるのにぃ!」と唸っていました)。ハイフンで始まるパターンをちゃんと認識させるには、ハイフンを 2 つ繋げて後に続くものがオプションじゃないですよーと教えてあげます。grepでハイフンから始まる文字をを検索する方法 — ディノオープンラボラトリ を参考にしました。

% ls -la | grep -- "->"

lrwxrwxrwx 1 uda uda 34 2012-06-20 16:45 .gitconfig -> /home/uda/dotfiles/uda-dotfiles/.gitconfig
lrwxrwxrwx 1 uda uda 33 2012-06-13 00:22 NumericalComputation -> program/test/NumericalComputation
lrwxrwxrwx 1 uda uda 33 2012-06-20 13:37 .screenrc -> /home/uda/dotfiles/uda-dotfiles/.screenrc
lrwxrwxrwx 1 uda uda 30 2012-06-20 13:37 .vimrc -> /home/uda/dotfiles/someones-dotfiles/.vimrc
lrwxrwxrwx 1 uda uda 30 2012-06-20 13:37 .zshrc -> /home/uda/dotfiles/others-dotfiles/.zshrc

若干不満なのが、grep --color=auto を使っても -> しかカラーリングされないこと。できれば ls --color=auto と同じ色で表示させたいけど、ちょっとよく分からなかった。修行不足だなー

もっとスマートなやり方あるよ!とかある人は是非教えてください。



参考文献