Символьная ссылка на существующую символьную ссылку создает другую символьную ссылку в текущем каталоге

Когда я имею символьную ссылку для папки и затем пробую ее снова -sf опция я заканчиваю тем, что имел другую символьную ссылку в папке первоисточника symlinking к себе. Почему это происходит и как я удостоверяюсь, что дублирующиеся символьные ссылки не создаются?

➜  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

Дистрибутив: Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-106-универсальный x86_64
оболочка: zsh с, О, моим zsh плагином

1
задан 18 May 2017 в 13:40

2 ответа

Я сделал еще несколько поисков в Google, и это указывает на то, что я должен использовать параметр -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

3
ответ дан 3 December 2019 в 06:54

Фактический ответ, в котором Вы нуждаетесь, не используйте -f, если Вы не хотите на самом деле перезаписывать что-то уже существующее.

Без того параметра Вы на самом деле получили бы сообщение, которое говорит Вам:

ln: failed to create symbolic link 'your/link': File exists

Эти -n, ни в коем случае я не мог думать необходимый, если Вы не хотите создать ссылку с тем же именем в каталоге ссылки, на который указывают.

1
ответ дан 3 December 2019 в 06:54

Другие вопросы по тегам:

Похожие вопросы: