一文看懂Linux中的软硬链接

在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

一文看懂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

一文看懂Linux中的软硬链接

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

一文看懂Linux中的软硬链接