linux软硬链接命令 linux 软硬链接( 二 )


正常情况下,一个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 链接的使用 创建和删除符号连接(软、硬链接)1 . 使用方式 :ln [option] source_file dist_file(source_file是待建立链接文件linux软硬链接命令的文件linux软硬链接命令,dist_file是新创建的链接文件)
-f 建立时,将同档案名删除.
-i 删除前进行询问.
ln -s abc cde 建立abc 的软连接
ln abc cde 建立abc的硬连接,
对于一个文件来说,有唯一的索引接点与之对应,而对于一个索引接点号 , 却可以有多个文件名与之对应 。因此,在磁盘上的同一个文件可以通过不同的路径去访问该文件 。注意在Linux下是一切皆文件的啊,文件夹、新加的硬盘 ...都可以看着文件来处理的啊 。
连接有软连接和硬连接(hard link)之分的 , 软连接(symbolic link)又叫符号连接 。符号连接相当于Windows下的快捷方式 。
不可以对文件夹建立硬连接的 , 我们通常用的还是软连接比较多 。
eg:
ln -s source dist# 建立软连接
ln source dist# 建立硬连接
软链接实际上只是一段文字,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对应的文件位置处进行处理;相反,硬联接为文件开设一个新的目录 项,硬链接与文件原有的名字是平权的,在Linux看来它们是等价的 。由于这个原因,硬链接不能连接两个不同文件系统上的文件 。
(1)软连接可以 跨文件系统,硬连接不可以。实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt /root/bb 连接成功。ln aa.txt /root/bb 失败。
(2)关于 I节点的问题。硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加,只要结点的连接数不是 0,文件就一直存在,不管你删除的是源文件还是 连接的文件。只要有一个存在,文件就 存在 (其实也不分什么源文件连接文件的  , 因为他们指向都是同一个 I节点) 。当你修改源文件或者连接文件任何一个的时候 ,其他的文件都会做同步的修改 。软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针 。所以 删除连接文件 对源文件无影响,但是删除源文件,连接文件就会找不到要指向的文件。软链接有自己的inode,并在磁盘上有一小片空间存放路径名.

推荐阅读