ln 软硬链接的创建
-
在实际生产环境中,我们更经常使用软连接;
-
硬链接的作用一般只有备份文件,然而由于所有硬链接都指向同一个inode,共享相同的数据块;
-
所以依旧容易造成数据的丢失,所以一般都使用 cp 命令进行备份;
语法格式
ln [选项] [源文件] [目标文件地址]
常用选项
-s #为源文件创建软连接
示例
#为网卡配置文件创建一个软链接和一个硬链接在/ln目录下
#软连接
[root@Dezyan ~]# ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 /ln/ens33.soft
#硬链接
[root@Dezyan ~]# ln /etc/sysconfig/network-scripts/ifcfg-ens33 /ln/ens33.hard
[root@Dezyan ~]# ll /ln/
总用量 4
-rw-r--r-- 2 root root 357 10月 24 16:45 ens33.hard
lrwxrwxrwx 1 root root 42 11月 5 04:37 ens33.soft -> /etc/sysconfig/network-scripts/ifcfg-ens33
软硬链接的区别
软连接 | 硬链接 | |
---|---|---|
创建对象 | 文件、目录 | 文件 |
iNode号 | 与源文件不同 | 与源文件相同 |
文件属性 | 依赖性:如果目标文件被移动或删除,软链接将变为“死链接”。 | 独立性:硬链接可以有多个不同的文件名,但它们指向的是同一个文件数据。 |
权限 | 软链接有自己的权限和所有权,因为它们是独立的文件,只是内容指向另一个文件。 | 所有硬链接共享相同的权限和所有权,因为它们实际上是同一个文件的不同引用。 |
链接指向 | 文件名 | 文件的inode(所有硬链接都指向同一个inode,共享相同的数据块) |
文件系统 | 可以跨越不同的文件系统 | 不能跨越不同的文件系统 |
空间占用 | 占用少量空间,因为它们需要存储目标文件的路径。 | 不占用额外空间,因为它们共享相同的数据块。 |
删除行为 | 由于它们只是指向目标文件的路径,所以删除不会影响目标文件。 | 只要至少有一个硬链接存在,文件数据就不会被删除。只有当所有硬链接都被删除后,文件数据才会被释放。 |
为什么一个空文件夹的硬链接数是2?
- 我们知道,在Linux系统中,文件和目录的硬链接数代表了有多少个目录项直接指向该文件或目录的inode。
- 对于一个空文件夹来说,它的硬链接数通常是2,这是因为:
- 当我们使用
ls -a
查看一个空文件夹时,Linux系统输出的内容如下:
- 当我们使用
[root@Dezyan ~]# ls -a 11
. ..
-
其中:
..
代表父目录中的目录项每个目录至少有一个硬链接,即其父目录中的目录项。这是目录的第一个硬链接。.
代表目录自身每个目录都有一个指向自身的目录项.
,这是目录的第二个硬链接。
-
注意:如果目录不为空,那么它还会有额外的硬链接,因为目录中的每个文件或子目录都会在该目录的inode中增加一个硬链接。