Linux文件管理知识汇总

常见的重要目录的意义

ls -l输出的意义

  • 第一列:规定了不同的用户对文件所拥有的权限。其中第一位表示文件的格式,具体为:
    • -:普通文件,包括纯文本文件、二进制文件、各种压缩文件等。
    • d:目录,类似 Windows 系统中的文件夹。
    • b:块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
    • c:字符设备文件,例如键盘、鼠标等。
    • s:套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。
    • p:管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。
    • l:链接文件,类似 Windows 系统中的快捷方式。
  • 第二列:引用计数,文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。
  • 第三列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户。
  • 第四列:所属组,默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。
  • 第五列:大小,默认单位是字节。
  • 第六列:文件修改时间,文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间。
  • 第七列:文件名或目录名。

文件主要的 3 个时间参数

  • atime:最近访问时间。只要文件的内容被读取,访问时间就会更新。
  • mtime:最近数据修改时间。当文件的内容数据发生改变,此文件的数据修改时间就会跟着相应改变。
  • ctime:最近状态修改时间。当文件的状态(如权限或属性)发生变化,就会相应改变这个时间。

在ls时可以添加参数--time=atime/ctime来控制第六行显示哪个时间。
可以使用touch -d "yyyy-mm-dd HH:mm" <filename>来更改某个时间。

ext 文件系统

ext4 文件系统会把分区主要分为两大部分:小部分用于保存文件的 inode信息;剩余的大部分用于保存 block 信息。

node 的默认大小为 128 Byte,用来记录文件的权限(r、w、x)、文件的所有者和属组、文件的大小、文件的ctime、atime和mtime、文件的数据真正保存的 block 编号。每个文件需要占用一个 inode。

inode 中是不记录文件名的,文件名记录在文件所在目录的 block 中。

block 的大小可以是 1KB、2KB、4KB,默认为 4KB。block 用于实际的数据存储,如果一个 block 放不下数据,则可以占用多个 block。这多个 block 有可能是连续的,也有可能是分散的。

如果想要读取文件内容,就必须借助目录中记录的文件名找到该文件的 inode,才能成功找到文件内容所在的 block 块。

硬链接和软链接

软链接:产生一个特殊的文件,该文件用来指向另一个文件,类似于 Windows 系统中给文件创建快捷方式。
硬链接:给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的 inode,从而读取该文件的数据信息。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容