ln有硬链接和符号链接。
ln file link #硬链接
ln -s item link #软链接,item可以是文件也可以是目录。
1,硬链接 hard links
每个文件都有一个硬链接,这个硬链接给文件起名字。当我们创建一个硬链接以后, 就为文件创建了一个额外的目录条目。
局限性:
1,不能关联文件系统之外的文件。
2,不能关联目录。
2,符号链接
创建一个特殊文件,包含一个关联文件或目录的文本指针。类似于windows的快捷方式。
修改符号链接可以修改指向的文件,删除符号链接不影响指向的文件,文件被删除,符号链接指向空,ls
下显示红色。
[jh@localhost playground]$ln fun fun-hard
[jh@localhost playground]$ls -l
rwxrwxr-x. 2 jh jh 4096 7月 24 22:28 dir1
drwxrwxr-x. 2 jh jh 4096 7月 24 22:28 dir2
-rw-r--r--. 4 jh jh 2195 7月 24 22:26 fun
-rw-r--r--. 4 jh jh 2195 7月 24 22:26 fun-hard
[jh@localhost playground]$ ls -li
总用量 16
479354890 drwxrwxr-x. 2 jh jh 4096 7月 24 22:28 dir1
479363082 drwxrwxr-x. 2 jh jh 4096 7月 24 22:28 dir2
479339188 -rw-r--r--. 4 jh jh 2195 7月 24 22:26 fun
479339188 -rw-r--r--. 4 jh jh 2195 7月 24 22:26 fun-hard
ls -l
的第二列4和2体现的是,比如fun
的硬链接数目。ls -li
的第一列展示了(文件索引节点)的信息。硬链接包含 内容的数据部分和特有的文件名的名字部分。相同数据名字不同的话,系统会分配一个所谓的磁盘索引节点来关联。
2,符号链接
[jh@localhost playground]$ ln -s fun fun-sym
[jh@localhost playground]$ ln -s fun dir1/fun-sym
[jh@localhost playground]$ ln -s fun dir2/fun-sym
[jh@localhost playground]$ ls -l
总用量 16
drwxrwxr-x. 2 jh jh 4096 7月 25 07:24 dir1
drwxrwxr-x. 2 jh jh 4096 7月 25 07:25 dir2
-rw-r--r--. 4 jh jh 2195 7月 24 22:26 fun
-rw-r--r--. 4 jh jh 2195 7月 24 22:26 fun-hard
lrwxrwxrwx. 1 jh jh 3 7月 25 07:24 fun-sym -> fun
[jh@localhost playground]$ ls -li
总用量 16
479354890 drwxrwxr-x. 2 jh jh 4096 7月 25 07:24 dir1
479363082 drwxrwxr-x. 2 jh jh 4096 7月 25 07:25 dir2
479339188 -rw-r--r--. 4 jh jh 2195 7月 24 22:26 fun
479339188 -rw-r--r--. 4 jh jh 2195 7月 24 22:26 fun-hard
479339189 lrwxrwxrwx. 1 jh jh 3 7月 25 07:24 fun-sym -> fun
会创建一个目标文件在哪里和符号链接有关联的文本描述。1表示是一个符号链接,指向
fun
。3表示fun
的字符数,而不是符号链接指向的文件长度。但是符号链接在ls -li
后第一列不一样。
参考:《the linux learning command》