Неработающая символическая ссылка при создании ссылки из исходного каталога

Я создал символическую ссылку для файла с именем zotero.desktop, который будет помещен в каталог ~/.local/share/applications, как показано ниже:

<At source file's directory>$ ln -s zotero.desktop ~/.local/share/applications/

символическая ссылка создана, но был сломан и не работал. Также попытался дважды щелкнуть файл Ubuntu Desktop, но у него появилось предупреждение «Boken link».

Затем попробовал приведенную ниже команду, и она сработала:

<At ~/.local/share/applications/>$ ln -s <source-dir>/zotero.desktop .

Есть ли какое-то объяснение этому?

1
задан 29 May 2019 в 12:26

1 ответ

Команда ln -s zotero.desktop ~/.local/share/applications/ создает softlink ~/.local/share/applications/zotero.desktop который указывает на себя, ~/.local/share/applications/zotero.desktop:

$ ls -l ~/.local/share/applications/zotero.desktop 
lrwxrwxrwx 1 terdon terdon 14 May 29 11:33 /home/terdon/.local/share/applications/zotero.desktop -> zotero.desktop

Это вызвано тем, что формат ln команда:

ln source target

Так как Вы дали источник как имя файла без пути, который взят, чтобы быть именем файла в целевом каталоге. Я не знаю, где Ваша цель, но предположение, что это находится в каталоге, который Вы запустили ln команда от, Вы хотите выполнить это:

rm ~/.local/share/applications/zotero.desktop
ln -s "$PWD/zotero.desktop" ~/.local/share/applications/

В целом необходимо помнить, что softlinks относительны. Так, например, я могу сделать это:

$ tree
.
├── file
└── foo

1 directory, 1 file
$ ln -s ../file foo/
terdon@tpad foo $ tree
.
├── file
└── foo
    └── file -> ../file

Когда я работал ln -s ../file foo, это означает, "создают символьную ссылку в нечто каталога, которое указывает на../файл". Но ../file будет относительно символьной ссылки. Таким образом, это укажет на названный файл file выше каталога foo.

Самый простой способ всегда разобраться в нем состоит в том, чтобы переместиться в целевой каталог сначала и затем работать ln управляйте там, так, чтобы Вы разобрались в относительном пути.

2
ответ дан 29 May 2019 в 12:26

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

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