フォルダーのシンボリックリンクがあり、-sf
オプションを使用してもう一度試してみると、元のソースフォルダー内に別のシンボリックリンクがシンボリックリンクされてしまいます。なぜこれが起こっているのですか?また、重複したシンボリックリンクが作成されないようにするにはどうすればよいですか?
➜ foo pwd
/home/ubuntu/foo
➜ foo ln -sf ~/foo/bar ~/foo/baz
➜ foo tree
.
├── bar
│ └── test.sh
└── baz -> /home/ubuntu/foo/bar
2 directories, 1 file
➜ foo ln -sf ~/foo/bar ~/foo/baz
➜ foo tree
.
├── bar
│ ├── bar -> /home/ubuntu/foo/bar
│ └── test.sh
└── baz -> /home/ubuntu/foo/bar
3 directories, 1 file
Distro:Ubuntu 14.04.5 LTS(GNU/Linux 3.13.0-106-generic x86_64
Shell:zsh with Oh my zsh plugin
さらにグーグルで調べたところ、 このブログ投稿 のように-n
パラメーターを使用するように指示されています。
関連するマンページエントリ:
-n, --no-dereference
treat LINK_NAME as a normal file if it is a symbolic link to a directory
より良い説明を持つ他のコミュニティからの関連する回答:
https://superuser.com/a/1061057/373342
https://superuser.com/a/645847/373342
実際に必要な答えは、既存のものを実際に上書きしたくない場合は、-f
を使用しないことです。
そのパラメーターがないと、実際に次のことを示すメッセージが表示されます。
ln: failed to create symbolic link 'your/link': File exists
-n
は、リンク先のディレクトリ内に同じ名前のリンクを作成する場合を除き、必要だとは思いません。