Linux lsattr ( list attribute ) 命令用于查看显示文件和目录的属性。
lsattr 命令的定义解释
lsattr ( list attribute ) 命令用于查看显示文件和目录的属性。在文件或目录上执行 lsattr 命令时,它会显示指定文件或目录的文件属性,并提供有关操作系统如何处理文件的附加信息。
在本教程中,我将介绍每个属性的含义以及 lsattr 命令的示例。
lsattr 命令语法
lsattr [OPTIONS] [FILES.../DIRECTORIES...]
[OPTIONS]:指定一个或多个选项来调整 lsattr 命令的输出,可选。
[FILES.../DIRECTORIES...]:指定一个或多个文件或目录来显示属性,可选;当不提供该参数,输出当前目录下的文件和子目录的属性。
lsattr 命令使用示例
获取一个文件的属性
获取一个文件 file1.txt 的属性:
lsattr file1.txt
输出内容:
--------------e------- file1.txt
e 属性说明该文件使用扩展格式存储。
获取多个文件的属性
获取两个文件 file1.txt、file2.txt 的属性:
lsattr file1.txt file2.txt
输出内容:
--------------e------- file1.txt
--------------e------- file2.txt
e 属性说明该文件使用扩展格式存储。
获取多个文件的属性
获取两个文件 file1.txt、file2.txt 的属性:
lsattr file1.txt file2.txt
输出内容:
--------------e------- file1.txt
--------------e------- file2.txt
e 属性说明该文件使用扩展格式存储。
只获取目录的属性
使用 -d 选项,只输出目录的属性,而不输出其内部文件和子目录的:
lsattr -d commands-workspace
输出内容:
--------------e------- commands-workspace
e 属性说明该文件使用扩展格式存储。
获取目录及其子目录内的属性
使用 -R 选项,递归的输出目录内文件、子目录的属性,及子目录内部内容的属性:
lsattr -R commands-workspace
输出内容:
--------------e------- commands-workspace/dir1
commands-workspace/dir1:
--------------e------- commands-workspace/dir1/source1.c
--------------e------- commands-workspace/dir1/test.txt
--------------e------- commands-workspace/link1.txt
--------------e------- commands-workspace/file1.txt
--------------e------- commands-workspace/file2.txt
e 属性说明该文件使用扩展格式存储。
获取隐藏文件的属性
使用 -a 选项,能够获取隐藏文件的属性:
lsattr -a commands-workspace
输出内容:
------ commands-workspace/dir1
--------------e------- commands-workspace/link1.txt
--------------e------- commands-workspace/file1.txt
--------------e------- commands-workspace/.hidden <-----------隐藏文件
--------------e------- commands-workspace/..
--------------e------- commands-workspace/file2.txt
--------------e------- commands-workspace/.
以 . 开头的文件为隐藏文件。
lsattr 命令输出的文件属性解释
如下给出了使用 lsattr 命令列出文件或目录属性时,所有属性的解释说明:
属性缩写
属性名称
解释说明
-
无属性
没有设置属性
b
备份
日常备份操作中包含该文件,如:dump
c
压缩
使用特定于文件系统的压缩算法压缩的文件
d
非转储(Dump)
该文件不是文件系统备份操作中包含的文件,如:dump
h
隐藏
该文件对大多数列表实用程序隐藏
i
不可变
文件不可修改、不可删除、不可重命名
s
同步更新
在写入操作完成之前,数据会被物理地写入磁盘,以确保在系统崩溃时数据的完整性
S
系统文件
该文件被标记为系统文件,表明其对系统运行的重要性
T
顶级目录(AIX)
(AIX特定)该属性指示文件系统层次结构中的顶级目录
u
不可删除
文件不能使用标准删除命令删除,但仍然可以用新数据覆盖它
A
无访问时间更新
不更新文件的访问时间(最后一次读取文件的时间),从而在访问时间信息不重要的场景中提高性能
X
无执行权限
该文件即使具有可执行权限,也不能作为程序执行
a
只追加
可以将新数据写到文件末尾,但不能修改已有的内容
e
扩展格式
文件数据使用 extents 格式存储,extents 是磁盘上连续的大块,可以提高大文件的性能
j
数据日志
文件系统维护一个日志来跟踪对文件所做的更改,以便在出现错误时更快地恢复
t
顶级目录
此属性与 T 类似,但根据文件系统的不同,其含义可能略有不同
P
项目层次结构
(特定于某些文件系统)该属性用于基于项目的配额管理
N
内联数据
小文件直接存储在 inode 中,而不是单独的数据块,从而提高了非常小的文件的性能
I
索引目录
该目录使用索引结构,以便更快地列出和搜索目录
E
已加密
使用特定于文件系统的加密算法对文件内容进行加密
lsattr 命令选项解释
如下给出了 Linux lsattr 命令中所有选项的解释说明:
选项
解释说明
-R
递归列出目录及其子目录和文件的属性
-V
显示程序版本
-a
列出目录中的所有文件,包括以 . 开头的隐藏文件
-d
像列出其他文件一样列出目录,而不是列出它们的内部文件和子目录
-l
输出时使用属性的长名称而不是单字符缩写
-p
列出文件的项目号
-v
列出文件的版本号 / 生成编号
结语
在本教程中我们介绍了如何使用 lsattr ( list attribute ) 命令用于查看显示文件和目录的属性。在文件或目录上执行 lsattr 命令时,它会显示指定文件或目录的文件属性,并提供有关操作系统如何处理文件的附加信息。
该 lsattr 命令可以在 Linux 系统中使用,也可以在 FreeBSD 系统中使用。