当我执行ls -al
in时,/usr/sfw/bin
我看到:make -> gmake
这表明什么?这是符号链接吗?我用谷歌搜索并没有找到这个问题的答案。
答案1
是的,一个符号链接。您可以将 -L 选项与 ls 一起使用来查看所指向的实际底层事物的属性,而不是符号链接本身的属性(符号链接的所有者/组/模式相当无趣,您通常关心的事物是指出)。
答案2
是的,这是一个符号链接。您可以尝试如下所示的操作。
bash-3.2$ mkdir a
bash-3.2$ ln -s a b
bash-3.2$ ls -al b
lrwxrwxrwx 1 ramesh ramesh 1 May 28 19:10 b -> a
b
是一个指向 的符号链接a
。
符号链接和硬链接之间的区别
文件系统中的文件基本上是指向索引节点的链接。然后,硬链接仅创建另一个文件,其中包含指向同一底层索引节点的链接。
当您删除文件时,它会删除指向底层索引节点的一个链接。仅当指向该索引节点的所有链接都已删除时,该索引节点才会被删除(或可删除/可重写)。
符号链接是到文件系统中另一个名称的链接。
一旦建立了硬链接,该链接就会指向 inode。删除重命名或移动原始文件不会影响硬链接,因为它链接到底层 inode。对 inode 上数据的任何更改都会反映在引用该 inode 的所有文件中。
注意:硬链接仅在同一文件系统内有效。符号链接可以跨越文件系统,因为它们只是另一个文件的名称。
参考
答案3
这是其他人所描述的链接符号。我只是补充一点,每当您在文件系统中遇到不确定它们是什么的文件时,您可以使用该file
命令来确定它们的类型。
例子
$ ll
total 20
drwxrwxr-x+ 3 saml saml 4096 May 28 19:47 dir1
drwxrwxr-x+ 2 saml saml 4096 May 28 19:52 dir2
-rw-rwxr--+ 1 saml saml 0 May 28 19:41 file1
lrwxrwxrwx. 1 saml saml 5 May 28 20:55 link -> file1
关联
$ file link
link: symbolic link to `file1'
文件
$ file file1
file1: empty
目录
$ file dir1
dir1: directory
的输出ls -l
还反映了第一列的类型。
d
= 目录l
= 链接-
= 一个文件
笔记:此处还可以显示其他类型。例如 fifo 和字符设备等。