如果我发出ln -s source.txt symlink.txt
并且symlink.txt
尚不存在,则自动创建的链接文件是否被调用symlink.txt
,或者该命令是否为 noop?
如果是 noop,如果我只是创建一个空白symlink.txt
( touch symlink.txt
),然后运行前面的命令,操作会按计划进行吗?
谢谢您的帮助
答案1
是的,ln
将创建链接文件,如果该文件存在,它将失败(除非您使用-f
或--force
选项)。
顺便提一句。运行命令或阅读手册页会给你更快的答案;-)
答案2
嗯,这很容易测试:
$ mkdir test; cd test
test$ ln -s source.txt symlink.txt
test$ ls -l
total 0
lrwxrwxrwx 1 ilkkachu ilkkachu 10 Oct 23 18:24 symlink.txt -> source.txt
test$ cat symlink.txt
cat: symlink.txt: No such file or directory
(将输出表示为文本并不符合 GNU ls 以及它所具有的着色支持。)
无论是否存在,这些ln -s
命令都会创建符号链接。但是,尝试通过符号链接访问该文件是行不通的,因为指向的文件不存在。使用输出着色,会将链接名称和目标显示为红色(或者无论设置是什么,无论如何,都不是实时链接。)symlink.txt
source.txt
ls
如果symlink.txt
存在,ln -s source.txt symlink.txt
就会给出错误,这是可以预见的。用于ln -sf
覆盖目标文件。