Я хочу создать символическую ссылку на корневую папку (/
) в моем домашнем каталоге. Однако, если я попробую это, я получу
~$ ln -s /
ln: failed to create symbolic link './': File exists
Я могу сделать это, используя Nautilus Ctrl kbd> + D kbd>, конечно, так что я знаю, что это возможно.
Как это сделать с помощью терминала?
Вам не хватает названия ссылки, оно должно быть:
cd ~
ln -s / root
, которое затем создаст символическую ссылку с именем root в вашем домашнем каталоге. Таким образом, правильное использование:
ln -s <target> <link-name>
Сообщение об ошибке, которое вы видите, состоит в том, что ./
всегда существует, и ссылка с этим именем не может быть создана, лучше всего использовать ln
команда 2 sup> с обоими параметрами для предотвращения неправильной связи.
Из man ln
:
СИНОПСИС
(1st form) ln [OPTION]... [-T] TARGET LINK_NAME (2nd form) ln [OPTION]... TARGET (3rd form) ln [OPTION]... TARGET... DIRECTORY (4th form) ln [OPTION]... -t DIRECTORY TARGET...
ОПИСАНИЕ
В 1-й форме создайте ссылку на
TARGET
с именемLINK_NAME
. Во 2-й форме создайте ссылку наTARGET
в текущем каталоге. В 3-м и 4-м классах создайте ссылки на каждыйTARGET
вDIRECTORY
. Создавайте жесткие ссылки по умолчанию, символические ссылки с--symbolic
. По умолчанию каждый пункт назначения (имя новой ссылки) еще не должен существовать 4 sup>. При создании жестких ссылок каждыйTARGET
должен существовать. Символьные ссылки могут содержать произвольный текст; если позже разрешено, относительная ссылка интерпретируется относительно его родительского каталога.Обязательные аргументы длинных опций обязательны и для коротких опций.
blockquote>Последний параметр,
<link-name>
, по умолчанию используется в последней части цель. Поэтому, когда целью является/path/dir
, имя ссылки будет по умолчанию равнымdir
, если оно не указано. 1 sup> И если вы, например, создадите~/etc
с помощьюmkdir ~/etc
, а затем запуститеln -s /etc
в~
он не может создать ссылку, потому что имя / каталог уже существует. 3 sup>И вы можете увидеть ссылку, созданную в вашем домашнем каталоге (здесь, например, вы, конечно, ' Вы можете называть его как угодно):
$ ls -l ~/root lrwxrwxrwx 1 videonauth videonauth 1 Dez 14 00:28 root -> /
1 sup> Спасибо @thomasrutter за указание на это.
2 sup> См. такжеman link
иman symlink
[sup> 3 sup> Спасибо @steeldriver за предоставленный пример в комментариях.
4 sup> Подчеркнута часть, чтобы подчеркнуть текст, поскольку он имеет отношение к вопросу.