Linux|文件属性总结
Linux 里处处皆文件,了解文件和文件属性是学习 linux 的第一步。每个人都应该了解了解 linux 的文件权限, 这是 linux 比其他操作系统安全的原因所在!
打印目录详解
磁盘索引即 inode,机械硬盘在使用前要进行分区和格式化,inode 可以理解为是格式化后硬盘的每个簇(存储单元)的逻辑编号。同等容量的硬盘,每个簇越小,inode 越多,反之越大。通常在存储大文件是将簇分的大一点有可以提升存储效率;但是当存储的文件较小簇分的很大时,虽然硬盘有空间但 inode 被占用完后,硬盘仍然不能进行存储数据。
文件类型。linux 一切接文件!而文件有许多类型,常见的文件类型有 d、l、- 分别表示文件夹、连接和文件(普通文件、二进制文件、命令文件..)。还有些不常见的 c/b 表示字符/块文件,通常是一些设备的文件,如 cdrom、sda 等;s,表示 socket 指网络通信文件。
文件权限,文件权限一共分为三组,第一组表示属主的文件权限,第二组表示属组的权限,第三组表示其他用户权限,每组有 3 位,分别表示读权限 r、写权限 w、执行权限 x。除了常规的 rwx 权限外,还有两个特殊的权限 s、t 分别是特指执行权限和特殊共享权限,特殊执行权限可以加载属主和属组上(chmod u+s/g+s),设置该权限的命令所有用户可以执行或所有属组的用户可执行;t 是粘滞位(sticky bit)设置该属性文件加用来共享数据,其他用户能否创建文件取决于该文件夹的其他用用户是否有写 w
的权限。
属主、属组,谁创建的文件/文件夹,则该文件/文件夹的属主属组就标记为谁。属主对文件有第一管理权(当然,root 除外)。
文件属性详解
使用stat
命令查看文件。
blocks 是文件占用的数据块数量,inode 是存储文件信息的地方。Uid、Gid 标识属组和属组。
block 用来存储数据,一般为 4k,每个 4k 块称为一个数据簇,block 的大小应该根据文件的大小来选择,当大文件存储到小 block 时,占用 IO 时间多,小文件存储大 block,占用磁盘存储空间。
文件属性的关系 一个文件占用一个 inode,一个文件占用多个 block 来存储文件数据,这些 block 信息都记录在 inode 里。
硬链接软链接详解
链接创建
注意 硬链接不能指向文件夹。而软链接文件夹/文件均可以。
ln <链接源> <链接目标> # 硬链接
ln -s <链接源> <链接目标> # 软链接
# 创建
[root@lqc /home]# ln -s /home/a.sh /home/a_soft.sh
[root@lqc /home]# ln /home/a.sh /home/a_hard.sh
硬软链接的区别
- 连接后的文件大小不一致,一般软链接文件较小
- 文件类型不同,硬链接为文件类型-,而软链接为链接类型 l
- 权限不一致,硬链接和源文件保持一致,软链接权限读写执行均有。
- 软链接 inode 不一致,硬链接一致
- 源文件删除后,硬链接文件依然有效,软链接无效
硬链接可以说的文件的另一个入口,因此删了源文件,硬链接依然有效。软链接的 inode 是执行源文件的 inode 的,相当于间接指向源文件数据,因此源文件删了,软链接也就失效了。
硬链接数
文件的多个入口, 当只有一个文件时连接数为 1, 存在一个硬链接硬链接数就会加 1。
硬软连接使用建议
- 可以使用硬链接实现备份数据功能,但不能防止修改
- 创建硬链接最好使用绝对路径