Как создать мягкую или символическую ссылку?

Я устанавливаю p4v в /opt, но /usr/bin находится на моем пути. Возможно ли создать мягкую или символическую ссылку для p4v с /opt до /usr/bin, поэтому я могу просто набрать «p4v», поскольку /usr/bin находится на моем пути?

369
задан 17 January 2012 в 21:36

8 ответов

См. man ln. Чтобы создать символическую ссылку /usr/bin/bar => /opt/foo, (т. Е. Создать символическую ссылку в /usr/bin/bar, которая ссылается на исходный файл /opt/foo):

ln -s /opt/foo /usr/bin/bar

Вам нужно будет применить выше команды как root (с sudo).

472
ответ дан 25 May 2018 в 19:26
  • 1
    Я использую: sudo ln –s /etc/apache2/sites-available/redmine /etc/apache2/sites-enabled/000-redmine получение ошибки: ln: target '/etc/apache2/sites-enabled/000-redmine' is not a directory – RAJ ... 4 August 2012 в 12:29
  • 2
    @RAJ ...: Возможно, пример может помочь ln -s /etc/vim/vimrc /home/paf/Copy/Programming/Apps/Tools/Vim – pablofiumara 12 November 2013 в 00:31
  • 3
    В документации Ubuntu сказано " Создает жесткие ссылки по умолчанию, символические ссылки с --symbolic. & Quot; Будет ли вышеупомянутое решение создать символическую ссылку, заданную OP? – Tanay 26 May 2015 в 08:27
  • 4
    Хотя César хотел поместить свои файлы в / opt и / usr / bin, чтобы иметь символическую ссылку, а не наоборот. – mishap 27 November 2015 в 03:41
  • 5
    @mishap прав, насколько мне известно. Это наоборот. – Daniel Szmulewicz 18 December 2015 в 21:05

Ошибка в том, что вы неправильно написали команду. Правильный способ:

ln -s /<full>/<path>/<to>/<file> /usr/local/bin

http://ubuntuforums.org/showthread.php?t=2001697

23
ответ дан 25 May 2018 в 19:26

Если исполняемый файл «p4v» находится в / opt / bin / p4v, вы можете просто запустить:

sudo ln -s /opt/bin/p4v /usr/bin/p4v
sudo chmod ugo+x /usr/bin/p4v

Было бы лучше добавить / opt / bin (или где бы исполняемый файл не был) на ваш путь:

echo "export PATH=\$PATH:/opt/bin" >> ~/.profile
reset
20
ответ дан 25 May 2018 в 19:26
  • 1
    ~/.profile было бы лучше для установки $PATH. – Lekensteyn 9 August 2011 в 00:30
  • 2
    вы можете отредактировать /etc/environment, чтобы изменить систему PATH. – Michał Šrajer 9 August 2011 в 00:44

Проверьте местоположение программного обеспечения.

which application-name #replace for the application you are looking for

, например

which skype

.

/usr/bin/skype 

Чтобы создать мягкую ссылку. например, вы хотите создать мягкую ссылку для skype на рабочем столе

ln -s /usr/bin/skype ~/Desktop/

Для получения дополнительной информации о ln.

man ln

или

ln --help
4
ответ дан 25 May 2018 в 19:26
ln -s -n ./TargetDirectory ./Nickname

Обратите внимание: это работает, если вы оба узла находятся ниже вас в одном и том же дереве. Вы можете использовать команду относительной записи

-s, которая делает ее символической ссылкой -n, позволяет создать символическую ссылку типа папки
1
ответ дан 25 May 2018 в 19:26
  • 1
    Добро пожаловать на сайт askubuntu.com. В этом случае $, чтобы указать приглашение командной строки, является выбором стиля и вряд ли будет проблемой. Однако имейте в виду, что включение в блок кода, отличное от кода и его вывода, может привести к путанице. – J. Starnes 12 December 2017 в 04:42

Если он говорит target is not a folder, это означает, что в именах папок есть пробелы, например: New Folder имеет пробел

Вам нужно отредактировать путь и добавить обратную косую черту \ после каждого пространство на путях

, например:

ln -s /opt/bin /usr/var/New\ Folder
0
ответ дан 25 May 2018 в 19:26
  • 1
    Это не ответ на вопрос ОП. Подождите, пока у вас недостаточно репутации, чтобы добавлять комментарии. – derHugo 9 November 2017 в 09:59

Я обнаружил, что проще перейти туда, где вы хотите, чтобы была ссылка, а затем создать ссылку, используя sudo ln -s /path/to/source/file, чем делать ln -s target source.

Итак, в вашем случае я сделал бы cd /usr/bin, затем sudo ln -s /opt/bin/pv4. Другой способ не работал в моем случае.

0
ответ дан 25 May 2018 в 19:26

Этот шаблон был более полезен для меня, чем приведенные выше ответы. Вероятно, не более корректно, только меньше обфускации:

ln -s <path/to/real/file-or-folder> <symlink path>

Просто замените части в <>

0
ответ дан 9 October 2018 в 10:30

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

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