Почему не работает линк, если я переношу его в другую директорию?
Только начал изучать linux. Скачал и установил программу steam, она автоматически устанавливается через apt-get. Скрипт, который её запускает, находится в /usr/games. Я создаю на него линк: sudo ln -s steam steam_link , в этой директории steam можно запустить как через оригинальный файл, так и через линк. Однако когда я переношу линк куда-либо, допустим, вот так: sudo mv steam_link ~/MyAppl , а потом пытаюсь его там запустить, ничего уже не работает, да и файл, если его открыть, оказывается пустым. Если перенести линк обратно, то все опять работает, права доступа дал всему максимальные через sudo chmod 777 steam. Такая же история не только с этим скриптом, но и с любым другим файлом. Если перенести оригинал, то все работает.
Если делаете относительной линк, а затем его копируете, то он будет ссылаться относительно нового каталога. Делайте линк ссылкой от корня файловой системы. Или создавайте линк сразу в нужном каталоге. Да в майкрософтп все тоже самое.
Чтобы разобраться с symbolic link нужно разобраться с типами путей, а именно знать, что есть абсолютный путь - путь, перечисляющий маршрут до папки/файла назначения от корня файловой системы, например ls /usr/bin - просмотр содержимого папки bin с помощью абсолютного пути; и знать, что есть относительный путь - путь, относительный текущей рабочей директории. например, чтобы попасть в /usr/bin из домашней папки пользователя, используя относительный путь, понадобится указать следующий маршрут: cd ../../usr/bin
Теперь о самих софт-линках. Софт-линк - это, если вкратце, файл, который содержит в себе путь до файла на который он указывает.
Теперь зная о путях и как работает symbolic link вы больше не будете путаться в этой теме! ;)