软硬链接的区别
四大区别
1硬链接就是同一个文件使用了多个别名但是inode相同。软链接就是一个普通文件,只是数据块内容有点特殊。 2硬链接是有着相同 inode 号仅文件名不同的文件,软链接就是一个普通文件它数据块内容是另一文件的路径名的指向。 3删除一个硬链接文件并不影响其他有相同 inode 号的文件。删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。 4硬链接不能对目录进行创建,只可对文件创建。软链接可对文件或目录创建。索引节点号:在linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号 inode。
一、软链接
符号链接又叫软链接,和原文件不是一个文件。例如Windows的快捷方式,如果原始文件被删除,所有指向它的符号链接也就都被破坏了。符号链接记录的是目标的path。符号链接可以跨越文件系统,也可以为目录建立。软链接有自己的node,是linux特殊文件的一种,作为一个文件,它的数据是
它所连接的文件的路径。
创建软链接文件代码格式:ln -s 原文件 链接文件
二、硬链接
硬链接,只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。当移动或者删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在件结构中的位置。硬链接记录的是目标的inode。
创建硬链接代码格式: ln 原文件 新文件
示例
1.根据要求创建软硬链接文件
在/home创建文件为aaa,并在/目录下创建软链接文件a.txt
/root下创建硬链接文件为A:
[root@localhost ~]# cd /home
[root@localhost home]# touch aaa
[root@localhost /]# ln -s /home/aaa a.txt
[root@localhost /]# ll
lrwxrwxrwx. 1 root root 9 Sep 21 18:24 a.txt -> /home/aaa
[root@localhost /]# cd /root
[root@localhost ~]# ln /home/aaa A
[root@localhost ~]# ll
-rw-r--r--. 2 root root 0 Sep 21 18:09 A
2.在当前系统/目录下创建100个文件(文件名例如:abc1…abc100)
[root@localhost ~]# cd /
[root@localhost /]# touch abc{1..100}
3.在newfile文件中编写以下内容
[root@localhost ~]# vim /newfile
[root@localhost ~]# cat /newfile
He love his lover
He love his liker
He like his lover
He like his liker
第一个栏位,表示文件的属性。Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。
第二个栏位,表示文件个数。如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了。
第三个栏位,表示该文件或目录的拥有者。若使用者目前处于自己的Home,那这一栏大概都是它的账号名称。
第四个栏位,表示所属的组(group)。每一个使用者都可以拥有一个以上的组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特殊权限时,才可能会给他另一个组。
第五栏位,表示文件大小。文件大小用byte来表示,而空目录一般都是1024byte,你当然可以用其它参数使文件显示的单位不同,如使用ls –k就是用kb莱显示一个文件的大小单位,不过一般我们还是以byte为主。
第六个栏位,表示创建日期。以“月,日,时间”的格式表示。
第七个栏位,表示文件名。我们可以用ls –a显示隐藏的文件名。