Если я выполню команду:
ln -s ~/user/relative/path /absolute/path
, а затем войду в систему под другим пользователем, у которого нет собственного / относительного / пути в домашнем каталоге, будет ли ссылка каким-то образом повреждена или недоступна?
Спасибо за ваш ответ:).
Проверьте на себя:
% ln -s ~/one two
% ls -l two
[...] two -> /home/rmano/one
команда ln
даже не видит ~
символ---, это расширено оболочкой.
Теперь, к [1 115] использование ссылка у нового пользователя должны быть соответствующие полномочия на реальном пути.
Вы можете помещать литерал ~
в ссылку, но тогда она не будет работать, по крайней мере, не в Linux---переменные среды как $HOME
не расширены, когда ядро разрешает символьную ссылку.
См.:
% cd
% touch a1
% ln -s $HOME/a1 a2
% ln -s '$HOME'/a1 a3
% ls -l a?
-rw-rw-r-- 1 rmano rmano 0 Mar 21 13:49 a1
lrwxrwxrwx 1 rmano rmano 15 Mar 21 13:49 a2 -> /home/rmano/a1
lrwxrwxrwx 1 rmano rmano 4 Mar 21 13:50 a3 -> $HOME/a1
% cat a2
% cat a3
cat: a3: No such file or directory
существует некоторая ОС, которая имеет это характеристики (я думаю, что одна версия FreeBSD сделала это, а также некоторый Unix, который я использовал на рабочих станциях Apollo---не уверенный, хотя), который называют различная символьная ссылка .
См. также https://stackoverflow.com/questions/3888809/environment-variables-in-symbolic-links