linux 软连接、硬连接与 ln(link) 命令
就像 Windows 下的快捷方式,但又有所不同。
硬连接 Hard Link
通过文件索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。
硬连接的作用是允许一个文件拥有多个有效路径名,以防止“误删”的功能。只删除一个硬连接并不影响索引节点本身和其它的连接,只有当最后一个硬连接被删除后,文件的数据块及目录的连接才会被释放。
注意:
- 不允许给目录创建硬链接;
- 只有在同一文件系统中的文件之间才能创建链接。
软连接 Symbolic Link
也称符号连接。软链接文件更加类似于 Windows 的快捷方式。它实际上是一个特殊标记过的文本文件,其中包含的有另一文件的位置信息。
源(source)可以是任意文件或目录,可以是存在于不同文件系统的文件,甚至可以是不存在的文件(断链)。软连接文件甚至可以连接自己(递归)。
在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除符号文件时,系统不删除源文件。
软连接不会维护源是否存在,当源或连接本身被移动后也不会维护。
比如:
$ mkdir dir1
$ ln dir1 link1
$ mv link1 ..
$ cd ../link1
cd: link1: No such file or directory
此时软连接已断链,因为 link1
的同级目录下不存在 dir1
目录。
ln 命令
指令名称:ln
使用权限:所有使用者
使用方式:ln [options] src dst
,其中 option 的格式为:[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}][--help] [--version] [--]
ln -s src dst
建立一个软连接,其中 source 推荐在非便携环境中使用绝对路径。
ln src dst
建立一个硬连接。
上一篇: metaprogramming-1-Dynamic Method
下一篇: 10分钟搞定硬链、软链