linux的硬连接和软连接node
连接方式有两种:硬连接和软连接linux
在Linux的文件系统中,保存在磁盘分区中的文件无论是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。ide
(1)硬连接:多个文件名指向同一索引节点索引
做用:容许一个文件拥有多个有效路径名,这样用户就能够创建硬链接到重要文件,以防止“误删”的功能。it
其实一个硬连接就是一个文件的一个别名,只删除一个链接并不影响索引节点自己和其它的链接,只有当最后一个链接被删除后,文件的数据块及目录的链接才会被释放。也就是说,文件真正删除的条件是与之相关的全部硬链接文件均被删除。class
硬连接文件有两个限制file
1)、不容许给目录建立硬连接权限
2)、只有在同一文件系统中的文件之间才能建立硬连接数据
ln 命令为现有文件建立新的硬连接。该命令懂得第一个参数为现有文件,后面能够跟一个或者多个额外的硬连接。硬连接能够处在任何位置上。touch
在/tmp目录中为现有的文件newfile.text建立硬连接mewfile-link1.text
[root@localhost ~]# cd /tmp
[root@localhost tmp]# touch newfile.text
[root@localhost tmp]# ln newfile.text /tmp/newfile-link.text
[root@localhost tmp]# ll newfile.text /tmp/newfile-link.text
-rw-r--r--. 2 root root 0 Nov 16 04:04 newfile.text
-rw-r--r--. 2 root root 0 Nov 16 04:04 /tmp/newfile-link.text
即便原来文件删除,只要有一个硬连接存在,该文件的内容就依然可读
[root@localhost tmp]# echo 'hello,world' > newfile.text
[root@localhost tmp]# rm -f newfile.text
[root@localhost tmp]# ll /tmp/newfile-link.text
-rw-r--r--. 1 root root 12 Nov 16 04:10 /tmp/newfile-link.text
[root@localhost tmp]# cat /tmp/newfile-link.text
hello,world
(2)软连接
软连接又叫符号连接,这个文件包含了另外一个文件的路径名。其实就是Windows中的快捷方式。
软链接没有硬连接那么多的限制
1)软连接有本身的文件属性及权限等。
2)可对不存在的文件或目录建立软连接。
3)软连接可交叉文件系统。
4)软连接可对文件或目录建立,并且目录能够位于不一样获得文件系统
5)建立软连接时,连接计数 i_nlink 不会增长。
6)删除软连接并不影响被指向的文件,但若被指向的原文件被删除,则相关软链接被称为死连接(即 dangling link,若被指向路径文件被从新建立,死连接可恢复为正常的软连接)。
ln -s 命令建立软连接
[root@localhost /]# touch newfile-link2.tetx
[root@localhost /]# ln -s newfile-link2.tetx /tmp/newfile-symlink.text
[root@localhost /]# ll newfile-link2.tetx /tmp/newfile-symlink.text
-rw-r--r--. 1 root root 0 Nov 16 04:19 newfile-link2.tetx
lrwxrwxrwx. 1 root root 18 Nov 16 04:20 /tmp/newfile-symlink.text -> newfile-link2.tetx
当原始文件删除时,连接文件依然指向该文件,但目标消失。指向缺失的文件的软连接称为“悬挂的软连接”、
[root@localhost /]# rm -f newfile-link2.tetx
[root@localhost /]# ll /tmp/newfile-symlink.text
lrwxrwxrwx. 1 root root 18 Nov 16 04:20 /tmp/newfile-symlink.text -> newfile-link2.tetx
[root@localhost /]# cat /tmp/newfile-symlink.text
cat: /tmp/newfile-symlink.text: No such file or directory