37
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

最近よく他の人の設定ファイルを試しに使ったりしています。そうすると、$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 と同じ色で表示させたいけど、ちょっとよく分からなかった。修行不足だなー

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


参考文献

37
32
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?