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

370

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

    
задан coffee 08.08.2011 в 21:17
источник

8 ответов

528

См. man ln .

Чтобы создать символическую ссылку в /usr/bin/bar , которая ссылается на исходный файл /opt/foo , используйте:

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

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

    
ответ дан Michał Šrajer 08.08.2011 в 21:20
источник
29

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

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

Ссылка

    
ответ дан Pedro Arnoldo Machado Duran 03.04.2014 в 21:15
20

Если исполняемый файл '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
    
ответ дан dv3500ea 08.08.2011 в 21:23
4

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

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
    
ответ дан Hafiz Shehbaz Ali 24.06.2015 в 21:41
1
ln -s -n ./TargetDirectory ./Nickname

Примечание. Это работает, если вы оба узла находятся ниже вас в одном и том же дереве. Вы можете использовать относительные обозначения

    Команда
  • -s делает ее символической ссылкой
  • -n позволяет создать символическую ссылку типа папки
ответ дан Mohamad El Boudi 12.12.2017 в 00:32
0

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

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

    
ответ дан briankip 17.04.2018 в 19:06
0

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

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

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

    
ответ дан LucasY 01.10.2018 в 20:24
0

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

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

например:

ln -s /opt/bin /usr/var/New\ Folder
    
ответ дан Sam 09.11.2017 в 05:43