在Linux中存在硬链接和软链接两种文件
硬链接(hard link)
可以理解为一个“指向原始文件的inode指针”,系统不为他分配独立的inode和文件。所以,硬链接文件与原始文件其实就是一个
文件,只是名字不同。我们每添加一个硬链接,该文件的inode连接数就会增加1;而且只有该文件的inode数为0时,才算是彻底将它
删除。换言之,由于硬链接实际上是指向源文件inode的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。需要
注意的是,由于技术的局限性,我们不能跨分区对目录文件进行链接。
源文件被改名,创建的硬链接依旧可以访问原始文件。
软链接(也称为符号链接[symbolic link])
仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接
文件也将失效。
软链接可看作是windows里面的快捷方式。删除源文件则快捷方式也没有办法使用。
ln命令:
ln命令用于创建链接文件,格式为"ln [选项] 目标",其可用的参数以及作用如下。在使用ln命令时,是否添加-s参数,
将创建出性质不同的两种链接。
参数 |
作用 |
-s |
创建符号链接(如果不带-s参数,则默认创建硬链接) |
-f |
强制创建文件或目录的链接 |
-i |
覆盖前先询问 |
-v |
显示创建链接的过程 |
创建硬链接并删除源文件链接依然生效
[email protected]:/home/mi/Desktop# echo "hello linux" > linux
[email protected]:/home/mi/Desktop# ln linux westos 创建硬链接
[email protected]:/home/mi/Desktop# cat linux
hello linux
[email protected]:/home/mi/Desktop# cat westos
hello linux
[email protected]:/home/mi/Desktop# ls -li linux 硬链接与源文件inode号相同
8390553 -rw-r--r-- 2 root root 12 Jan 30 16:01 linux
[email protected]:/home/mi/Desktop# ls -li westos
8390553 -rw-r--r-- 2 root root 12 Jan 30 16:01 westos
[email protected]:/home/mi/Desktop# rm -fr linux 删除源文件硬链接依然生效
[email protected]:/home/mi/Desktop# cat westos
hello linux

创建软链接并删除源文件链接失效
[email protected]:/home/mi/Desktop# echo "hello linux" > linux
[email protected]:/home/mi/Desktop# ln -s linux westos 加-s创建软链接
[email protected]:/home/mi/Desktop# cat linux
hello linux
[email protected]:/home/mi/Desktop# cat westos
hello linux
[email protected]:/home/mi/Desktop# ls -li westos 查看软链接的inode号不一样
8390552 lrwxrwxrwx 1 root root 5 Jan 30 15:56 westos -> linux
[email protected]:/home/mi/Desktop# ls -li linux
8390517 -rw-r--r-- 1 root root 12 Jan 30 15:55 linux
[email protected]:/home/mi/Desktop# rm -f linux 删除源文件则链接生效
[email protected]:/home/mi/Desktop# cat westos
cat: westos: No such file or directory

当文件再次生成的时候,软链接恢复
[email protected]:/home/mi/Desktop# echo "hello linux" >> linux 往源文件追加内容
[email protected]:/home/mi/Desktop# ls 软链接恢复
demo etc linux python westos workdir xfl xyy
