linux软链接和硬链接

建立方法:

ln -s abc link建立abc 的软连接
ln abc link建立abc的硬连接(默认)实际参数为-d:ln -d abc link

 

删除链接方法:

统一用

rm -rf symbolic_name注意不是rm -rf symbolic_name/

 (注意和alias的区别。建立alias  saiku=‘cd  /home/saikudatasource‘。

删除,unalias saiku)

硬链接(Hard Link):

语法:

ln -d existfile hardlink

具体:

ln [options] existingfile hardlink(existingfile 待建立链接文件的文件,hardlink是新创建的链接文件)

 –f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接。-i 删除前进行询问.

缺点:

(1)不可以在不同文件系统的文件间建立链接
(2)只有超级用户才可以为目录创建硬链接

另一种被称为符号链接(Symbolic Link),就是软链接:

ln -s existingfile softlink

谁都能建。跨文件系统。

 

 

二者区别:

linux系统中,文件唯一标识为inode号,索引节点号,创建文件就分配一个唯一的inode。通过 ls -il 可以查看,开头第一个列。

[root@rekfan.com test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
[root@rekfan.com test]# ln file2 file2hand
[root@rekfan.com test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[root@rekfan.com test]#

第三列为链接个数,建立硬链接,则会增加个数。而软链接不会。

 

主要区别为,硬链接同一文件,软链接为不同文件。

硬链接相当于又起了一个文件名(也相当于一个文件指针),直接指向源文件,inode号一致,其与原文件名功能基本相同。所以删除文件必须删除两个链接。删除其中一个,文件还在,只是删除了自身这个文件名。

软链接,跨越不同机器、不同网络对文件进行链接。如,

[root@rekfan.com test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand

[root@rekfan.com test]# ln -s file1 file1soft
[root@rekfan.com test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft -> file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand

1.软链接不是源文件,链接文件拥有不同的inode号,表明他们是两个不同的文件;在文件属性上软链接明确写出了是链接文件。

2.所以文件链接数不会增加。

系统通过软链接,去找到真正要访问的文件。

 

 

 

 

 

另一个人总结的:

(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,并在磁盘上有一小片空间存放路径名.

(3)软连接可以对一个不存在的文件名进行连接 。

(4)软连接可以对目录进行连接。

备注:I节点 :它是UNIX内部用于描述文件特性的数据结构.我们通常称I节点为文件索引结点(信息结点).i节点 含有关于文件的大部分的重要信 息,包括文件数据块在

磁盘上的地址.每一个I节点有它自己的标志号,我们称为文件顺序号.I节点包含的信息 1.文件类型 2.文件属主关系 3.文件的访问权限 4.文件的时间截.

linux软链接和硬链接

上一篇:drop用户hang住解决思路


下一篇:java 日期工具类