符号链接命令行为 ln -s

符号链接命令行为 ln -s

如果我发出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.txtsource.txtls

如果symlink.txt存在,ln -s source.txt symlink.txt就会给出错误,这是可以预见的。用于ln -sf覆盖目标文件。

相关内容