linux软硬连接命令 linux 软链接 硬链接( 四 )


在 Linux 中,元数据中的 inode 号(inode 号即索引节点号)才是文件的唯一标识而非文件名 。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块 。
2. 查看文件对应的inode号
134474678 latest.tar.gz
linux查看文件对应的inode号
可以看出latest.tar.gz这个文件, inode 号是134474678,Linux查找读写该文件时,以为个inode号码为标识,而不是文件名 。文件名类似于网站域名,仅仅是方便人类记忆 。
也就是说,inode134474678有一个硬链接,它就是latest.tar.gz 。
3. 根据inode号查找对应的文件
那么 , 问题来了,系统上有没有第二个文件 , 它的inode号码也是13447467 。
使用find查找一下:
查找结果如下:
/root/latest.tar.gz
/root/latest2.tar.gz
linux根据inode号查找对应的文件
硬盘上真的有第二个文件它的inode号码也是134474678,像这种情况,我们认为inode134474678有两个硬链接 。当然,这是本文作者提前准备好的 。
为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接 , 即 soft link 或 symbolic link) 。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处 。
4. 确认硬链接的数量
查看一下文件latest.tar.gz
输出结果如下:
【linux软硬连接命令 linux 软链接 硬链接】 -rwxr-xr-x. 2 root root 8743850 Oct 11 15:00 latest.tar.gz
请留意输出的结果中的数字2 , 表示该文件存在2个硬链接 。
正常情况下,一个inode只有一个链接 , 如下例
输出结果:
-rw-r--r--. 1 root root 9 Nov 21 11:39 abc.txt
请留意输出的结果中的数字1,表示该文件只存在1个硬链接,默认情况下,文件都是只有一个硬链接的 。
5. 查看软链接
再来看一个文件
lrwxrwxrwx. 1 root root 15 Sep 26 15:57 /dev/stdout - /proc/self/fd/1
linux查看软链接
我们发现,/dev/stdout实际上指向另一个文件/proc/self/fd/1,这就是软链接 。类似于Windows系统上的快捷方式 。
6. 软链接与硬链接的区别
6.1 软链接特点
6.2 硬链接特点
ln链接符原理如下:
Linux ln链接符原理图
7. 创建文件的链接
Linux ln命令是一个非常重要而且常用命令,它用于为文件或者目录创建链接 。
7.1 创建软链接
创建一个文件 , 用于演示软链接 。
创建软链接示例:
检查结果:
输出文件属性
lrwxrwxrwx. 1 root root 8 Nov 26 17:48 soft123.txt - soft.txt
linux创建软链接
可以看出这个文件指向当前目录soft.txt,配置成功 。7.2 创建硬链接
创建一个文件,用于演示硬链接 。
创建硬链接,没有使用选项
检查结果:
输出文件属性:
-rw-r--r--. 2 root root 0 Nov 26 17:47 hard123.txt
linux创建硬链接
留意以上输出数字2 , 表明该文件有2个副本 。
8. 总结
ln命令可以创建文件的副本 , 也可以创建软链接 。
linux给文件创建硬链接在了Linux下创建硬连接和软连接(也就是符号连接)都是用ln命令 , 当使用ln命令时加上-s选项就表示创建的连接文件是一个软连接,如果使用ln命令时不带-s选项就表示创建的是一个硬连接 。而ln命令的格式则是:ln 原文件 连接文件
比如如下命令是创建硬连接的,/home/testfile就是创建的硬连接文件 , 它连接到/root/testfile这个文件:

推荐阅读