Ars*_*ika 10 linux symbolic-link
# ln -sv /path/to/target /path/to/link
‘/path/to/link’ -> ‘/path/to/target’
Run Code Online (Sandbox Code Playgroud)
现在我想用 target2 替换该目标:
# ln -sfv /path/to/target2 /path/to/link
‘/path/to/link/target2’ -> ‘/path/to/target2’
Run Code Online (Sandbox Code Playgroud)
哇!那里发生什么了?尾部斜杠没有任何影响:
ln -sfv /path/to/target2/ /path/to/link
‘/path/to/link/target2’ -> ‘/path/to/target2/’
# ln -sfv /path/to/target2/ /path/to/link/
‘/path/to/link/target2’ -> ‘/path/to/target2/’
# ln -sfv /path/to/target2 /path/to/link/
‘/path/to/link/target2’ -> ‘/path/to/target2’
Run Code Online (Sandbox Code Playgroud)
如何实现’/path/to/link’ -> ’/path/to/target2’
?
l0b*_*0b0 16
使用-n
/ --no-dereference
(“如果 LINK_NAME 是指向目录的符号链接,则将其视为普通文件”):
$ ln -sv /var/log /tmp/my-link
‘/tmp/my-link’ -> ‘/var/log’
$ ln -sfnv /var/opt /tmp/my-link
‘/tmp/my-link’ -> ‘/var/opt’
Run Code Online (Sandbox Code Playgroud)
也就是说,ln -s target link
将工作一样ln -s target link/target
,如果link
链接到一个目录。
大多数 Linux 命令工具会在应用它们的操作之前尝试取消引用符号链接,否则符号链接将大多只是混乱且几乎无用。我猜ln
原作者认为在这种情况下,一致性比一定程度的简单性更重要(有可能让习惯了其他工具的人感到困惑)。
归档时间: |
|
查看次数: |
27698 次 |
最近记录: |