在Linux系统中,有一些常见的硬链接和软链接,你知道吗?今天让我们认识一下吧!先从Linux系统中的文件系统说起。1.在Linux中,一切皆文件。在linux中只有一个根目录,就是/(斜杠),其子目录如下:binbootdevetchomeliblib64mediamntoptprocrootrunsbinsrvsystmpusrvar下面分别解释一下各自的含义一些比较重要的目录:bin:表示二进制文件,包括所有用户都会用到的可执行程序。因为bin目录下的子目录太多,这里只展示了一部分)[hduser@localhostbin]$ls[boot:表示启动文件的意思,包括linux系统dev启动相关的文件:表示设备目录(包括外设),其每个子目录对应一个外设etc:表示配置文件,包括系统的配置文件home:表示用户的私有目录[hduser@localhosthome]$lshduseryzplib:表示库文件目录,包括所有对系统有用的库文件media:表示移动外设(如:USB、CD等)目录,我们可以通过media子目录访问这些设备mnt:该目录用于临时加载somedevicesopt:用于安装第三方软件和插件的目录root:超级用户的主目录proc:storage是虚拟文件系统的目录sbin:包含系统级可执行程序目录srv:这个目录包含一些网络服务启动后需要的数据tmp:普通用户和程序存放临时文件的地方usr:存放Unix操作系统软件的资源目录[hduser@localhostusr]$lsbinetcgamesincludeliblib64libexeclocalsbinsharesrctmp下面用一张图来概括一下根目录下各个文件的含义2.硬链接和软链接:1.链接类型分类:硬链接和软链接2.首先了解一下什么是inode?在linux系统中,文件的内容都会被分配一个标识号,也就是inode,也就是文件的索引节点。linux文件系统中有一个区域叫做inode表,就是存放inode的地方。inode存储文件。文件的元信息包括:文件类型、文件权限、文件物理地址、文件长度、文件连接数、文件访问时间、索引节点数、文件状态、访问次数、链接指针在Linux系统中,每个文件名都与其文件内容绑定,由文件内容的inode标识,文件名不是文件的唯一标识,inode是文件的唯一标识3.硬链接原理硬链接:使具有链接关系的两个文件共享相同的文件内容,具有相同的inode。缺点是只能创建指向文件的硬链接。不能指向目录4.软链接原理软链接:有软链接关系的两个文件,它们的inode不一样,可以指向目录,软链接真的很像我们windows下的快捷方式3.ln命令1.功能:用于创建文件之间的链接,ln是link("link")的缩写2.创建硬链接lna.txtb.txt注:数字2表示inode号相同的文件个数查看inodesofthefile-i(i参数可以显示文件的inode)我们可以看到a.txt和b.txt文件的inode是一样的,说明指向的是同一个文件内容。让我们删除a.txt文件,用b.txt文件说,看看会发生什么lsrma.txtlscatb.txtls-i我们用rm删除了a.txt文件,可以看到有对b.txt文件没有影响,它的inode没有改变。对于硬链接,如果删除两边的文件,它们指向的文件的内容不会从硬盘中删除。删除3.创建软链接ln-sfile1.txtfile2.txtfile2.txt->file1.txt表示文件file2指向file1,lrwxrwxrwx中的l表示file2.txt文件为软链接文件查看inodelesofthefile-ius可以看出file1和file2的inode是不一样的。这是因为file2指向file1,他们指向的不是同一块文件内容,所以他们的inode号不一样。file2实际上只是file1的快捷方式。它指向file1,所以显示file1的内容。删除file1.txt会对file2.txt有什么影响?如果我们删除file2,它不会影响file1。如果我们删除file1,那么file2就会变成一个“死链接”,也就是因为file2指向的文件没有rmfile1.txtls-lh
