Linux文件属性软硬连接

链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。

在硬链接的情况下,参数中的“目标”被链接至[链接名]。如果[链接名]是一个目录名,系统将在该目录之下建立一个或多个与“目标”同名的链接文件,链接文件和被链接文件的内容完全相同。如果[链接名]为一个文件,用户将被告知该文件已存在且不进行链接。如果指定了多个“目标”参数,那么最后一个参数必须为目录。

如果给ln命令加上- s选项,则建立符号链接。如果[链接名]已经存在但不是目录,将不做链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与“目标”不在同一个文件系统中。如果[链接名]是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指向原“目标”的符号链接文件。

硬链接:ln 源文件 目标文件

软连接:ln -s 源文件 目标文件(目标文件不能已经存在)

 

1. 硬链接(hard link) :

在Linux文件系统中,多个文件名指向同一个索引节点(inode)。这种情况文件就称为硬链接。硬链接文件就相当于文件的另外的一个入口。

例:

[root@centos ~]# ls -il ett.txt

39 -rw-r--r--. 1 root root 292 5月  10 19:58 ett.txt

[root@centos ~]# ln ett.txt a

[root@centos ~]# ls -hil ett.txt a

39 -rw-r--r--. 2 root root 292 5月  10 19:58 a

39 -rw-r--r--. 2 root root 292 5月  10 19:58 ett.txt

硬链接知识:

1. 具有相同inode节点号的多个文件是互为硬链接文件

2. 删除硬链接文件或者删除源文件任意之一,文件实体并未被删除

3. 只有删除了源文件及所有对应的硬链接文件,文件实体才会被删除

4. 当所有的硬链接文件及源文件呗删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收

5. 硬链接文件就是文件的另一个入口

6. 可以通过给文件设置硬链接文件,来防止重要文件被误删

7. 通过执行 ln 源文件 硬链接文件 即可创建硬链接文件

8. 硬链接文件是普通文件,所以可以用rm命令删除

9. 对应静态文件(没有进程正在调用的文件)来讲,当对应硬链接数为0(i_link),文件就被删除了。i_link的查看方法:ls -l 第三列的数字就是

硬链接的限制:

我们在使用硬链接的同时也需要对硬链接的限制有所了解; 
1. 不能跨文件系统 
2. 不能链接到目录


2.软链接(symbolic link):

软连接又叫做符号链接,它几乎可以等价于windows下的快捷方式;

[root@centos ~]# ls -li install.log b

121 lrwxrwxrwx  1 root root    11 5月  18 15:14 b -> install.log

 

13 -rw-r--r--. 1 root root 21712 5月   8 00:06 install.log

 

软连接的创建:

软连接:ln -s 源文件 目标文件(目标文件不能已经存在)

软连接知识:

1. 软连接类似window的快捷方式(可以通过readiink查看其指向)

2. 软连接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体

3. 删除源文件,软连接文件依然存在,但是无法访问指向的源文件路径内容了

4. 失效的时候一般是白字红底闪烁提示

5. 执行命令“ln -s 源文件 软连接文件”,即可完成创建软连接(目标不能存在)

6. 软连接和源文件是不同类型的文件,也是不同的文件,inode号也不相同

7. 软连接文件的文件类型为(l),可以用rm命令删除

有关文件的整体总结:

1.删除软连接,对源文件和硬链接文件都没有印象

2.删除硬链接,对源文件和软连接文件都没有印象

3.删除源文件,对硬链接没有印象,但是会导致软连接文件失效,白底红字闪烁

4.同时删除源文件和硬链接文件,整个文件才会真正的被删除

5.源文件和硬链接文件具有相同的索引节点号,可以认为是同一个文件或一个文件多个入口

6.源文件和软连接文件的索引节点号不相同,是不同的文件,软连接文件相当于源文件的快捷方式,含有源文件的位置指向

有关目录的总结:

1. 对于目录,不可以创建硬链接,但可以创建软连接

2. 目录的硬链接不能跨越文件系统

3. 每个目录下面都有一个硬链接.号,和对应上级目录的硬链接..

4. 在父目录里面创建一个子目录,父目录的链接数会增加1(子目录里都有..来指向父目录)

猜你喜欢

转载自blog.csdn.net/qq_41816540/article/details/80382635