如果我运行命令:
ln -s ~/user/relative/path /absolute/path
然后以不同的用户身份登录,其主目录中没有用户/相对/路径,链接是否会以某种方式断开或无法访问?
谢谢您的回答 :)。
答案1
自己检查一下:
% ln -s ~/one two
% ls -l two
[...] two -> /home/rmano/one
该命令ln
甚至看不到~
字符 --- 它被 shell 扩展了。
现在,使用新用户必须对链接的真实路径具有相应的权限。
你能在链接中放置一个文字~
,但它将不起作用,至少在 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 的一个版本有这个特点,我在 Apollo 工作站上使用的一些 unix 也有这个特点 --- 虽然不确定),它被称为变体符号链接。
也可以看看https://stackoverflow.com/questions/3888809/environment-variables-in-symbolic-links