文件类型有什么?如何修改文件权限?软链接和硬链接的区别是什么?

masm2022-07-06  24

主要问题中有三个问题:

Linux文件类型有哪些?如何修改文件权限?软链接和硬链接有什么区别?

我想我想问的第一个问题是Linux的文件系统类型是什么?因为单个文件本身的类型不是由Linux决定的,而是由创建该文件的应用程序决定的,就像windows一样,。文本文件(textfile)

。可移植文档格式文件的扩展名(portable document format的缩写)

。文件

。电子表格文档

等等....不可能面面俱到。如果是Linux文件系统的类型,这个问题就有意义了,因为文件系统是由操作系统本身决定的。在这里,我将逐一回答这三个问题:

第一个问题,Linux的文件系统类型有哪些?

首先,我们来谈谈如何用最简单的方法检查一个Linux的文件系统类型。假设你已经登录了Linux系统(比如CentOS/Ubuntu等。)并打开了一个命令行窗口,只需使用一个简单的命令:mout,就这个命令。

红线是Linux的文件系统类型,称为ext4。这是什么意思?它的中文翻译是第四代扩展文件系统,英文原文是第四代扩展文件系统,缩写为ext4。

为什么突然出了一个ext4第四代?有1、2、3代吗?是啊!

到现在为止,Linux已经经历了四代文件系统的更替,当然每一代都比另一代好。

第一代ext发布于1992年4月。对驻留在Unix中的文件系统进行了优化,主要采用了Unix文件系统的元数据结构。因为支持的文件系统大小不理想,现在基本不用了。

第二代EXT2于1993年发布。在第一代的基础上进行了增强,其文件系统最高支持2TB。Linux的内核发布到2.6的时候,最大可以支持32TB的大小,文件系统高效稳定,所以用的时间比较长,弱点就是非正常关机,导致文件系统损坏(概率非常大)。

由ext2发展而来的第三代ext3,主要增加了log功能,高可用性进一步提升:

高可用性:系统使用ext3文件系统后,即使非正常关机,文件系统也不容易损坏。

数据完整性:避免意外停机造成的文件系统损坏。

文件系统速度:ext3的日志功能优化了磁盘驱动器读写头的算法,提高了性能。

兼容性:从ext2文件系统转换到ext3文件系统非常容易。

第四代ext4,也就是现在的文件系统类型,实际上是ext3的改进版本,在ext3的基础上提供了更好的性能、可靠性和更多的功能。

第一,单个文件可以达到16TB,而ext3最多2TB。

第二,支持无限子目录,而ext3最多只能支持32000个左右的子目录。有人说32000个子目录就够了。是的,对你来说足够了,但对工程应用来说还远远不够。

第三,采用了现代文件系统扩展的思想,每个扩展都是一组连续的数据块,使得读写更加流畅,提高了性能。

第四,改进了多块分配器。一个程序调用可以分配多个数据块,简化了调用控制过程,效率更高。

第五,改进,在线数据整理.....

所以是现在的linux文件系统,大数据系统hadoop的底层也是用ext4作为物理存储。当然也加入了软件定义存储的概念,所以可以无限扩展。

以上是关于Linux的文件系统类型,还有其他方向等待其他答案。

第二个问题,如何修改文件系统的权限?

很简单。登录到命令行窗口。

我在这里构建了一个名为demo的目录,以及一个名为

demofile.txt

,使用ls -l命令查看他的权限,我们可以看到标记- rw- r - r -,这意味着这个文件目前的权限是:文件的所有者拥有读写权限rw-,与所有者同一个工作组的成员只有只读权限r -,其他用户只有只读权限r -,所以我们把它的权限分配改为同样的

chmod g=rw demofile.txt

就这么简单。

g代表group,意思是群体。chmod是一个专门用于更改文件和目录权限的命令。g=rw表示组成员拥有rw,即读写权限。此外,您可以向组成员分配执行权限。请执行以下操作:chmod g=rwx demofile.txt

完成此操作后,我们查看文件发现组的权限变为rwx,文件变为绿色。x表示文件可以执行。当然,要执行什么应该添加到文件本身。

例如,我们希望其他用户拥有读取和执行权限。这样吧:chmod o=rx demofile.txt,o其中o代表其他。

您可以用同样的方式更改其他权限,例如更改您自己的权限,并将文件的可运行权限添加到您自己的权限中:

chmod u=rwx

demofile.txt

,这样您也有运行的权限。

改变一个文件的权限基本上就是这么简单,只是一个命令chmod。

第三个问题,软链接和硬链接有什么区别?

为了搞清楚这件事,我们最好手工设置一个软链接和一个硬链接。根据空,是抽象的。创建软链接和硬链接的方法如下:

在图中,我们可以看到,当我们使用ls -li查看目录中的文件时,我们发现了一些非常有趣的事情。我们发现文件file1的编号与硬链接名称f1的编号相同,对吗?软连接f2的数量与文件1的数量不同,不同之处在于:

这个数字就是linux文件系统中著名的inode,中文可以翻译成index node。

有什么区别?是的,现在f1是file1的硬链接。从文件系统的角度来看,f1和file1是完全等价的,也就是说同一个数据块有两个不同的文件名,它们都指向系统中的同一个存储块。如果此时删除文件1,f1也可以访问,如果删除f1,文件1也可以访问。一切都还在,不会影响。但是软连接就不一样了。如果此时删除file1,则软连接f2将无法访问,即找不到数据块,已更改为空。

Linux给每个文件一个惟一的inode索引号,但是允许一个文件有两个或更多不同的名字,指向同一个存储空。他们是完全平等的,互不干涉。当Linux系统实际删除一个文件的磁盘内容时,会判断是否还有相同inode的文件名指向这个数据块。如果有,则不删除数据块,如果没有,则删除。

软连接可以简单理解为只是一个到原文件的快捷方式。创建软连接时,将创建不同于源文件的inode。它通过源文件的一个文件名间接找到数据块,相当于F2-file1-Datablock。现在删除了文件名File1,连接从中间断开,没有地方指向快捷方式,所以是空。

希望可以帮助你更好的了解linux的文件系统。

加一个人字:

硬链接是每个连接名(可以理解为文件名)直接指向数据块本身,所以它们有相同的inode号。

软连接通过数据块的一个文件名作为中介连接到数据块。它与数据块本身没有直接关系,因此使用不同的inode号。这就是区别。

我发现很多工作中的系统管理员和开发人员并没有真正理解两者的区别。

转载请注明原文地址:https://juke.outofmemory.cn/read/612877.html

最新回复(0)