在Linux中,文件属性是描述文件行为的元数据属性。 例如,属性可以指示是否压缩文件或指定是否可以删除文件。
可以设置或清除诸如不变性之类的某些属性,而诸如加密之类的其他属性则是只读的,并且只能被查看。 对某些属性的支持取决于所使用的文件系统。
本教程介绍如何使用chattr
命令更改文件的属性。
chattr语法
chattr
命令采用的形式是chattr [OPTIONS] [OPERATOR][ATTRIBUTES] FILE...
,[OPERATOR]
操作符的值可以是这些符号之一。
+
加号运算符将指定的属性添加到现有属性中。-
负号运算符从现有属性中删除指定的属性。=
等于运算符将指定的属性设置为唯一属性。
操作符后跟一个或多个要添加或从文件属性中删除的[ATTRIBUTES]
标识。以下是一些常用属性和标识的列表。
a
设置此属性后,只能以追加模式打开文件进行写入。
A
打开具有该属性的文件时,其atime属性不会改变。 atime 访问时间是某个命令或应用程序最后一次访问/打开文件的时间。
e
此属性表示文件正在使用扩展区来映射磁盘的块。e
属性无法用chattr
修改。i
此属性表示文件是不可变的,这意味着该文件无法删除或重命名。
要获取文件的所有属性和标识的完整列表,请在终端运行命令man chattr
。默认情况下,使用cp
或rsync
之类的命令复制文件时,不会保留文件属性。
chattr示例
chattr的常见用途之一是为文件或目录不可变标识设置,以防止用户删除或重命名文件。只有root用户才可以为文件或者目录添加删除不可变的属性标识。
在设置文件或者目录的属性之前可以运行命令lsattr
查看文件属性,要使文件不可变,请使用+
运算符将i
标志添加到现有属性中。
当使用chattr修改属性后,可以再次运行lsattr命令,验证属性是否设置成功。要还原更改并删除不可变标志,请使用-
运算符。
lsattr todo.txt
sudo chattr +i todo.txt
lsattr todo.txt
sudo chattr -i todo.txt
使用chattr您可以一次添加或删除多个属性。 例如,要使文件不可变并指示内核不要跟踪上次访问的时间,请运行命令sudo chattr +iA todo.txt
。
您也可以使用=
运算符。例如,要将e
属性设置为唯一属性。请运行命令sudo chattr "=e" todo.txt
。
请注意,运算符和标志都用引号引起来,以避免shell解释字符=
。
sudo chattr +iA todo.txt
sudo chattr "=e" todo.txt
结论
chattr
是用于更改Linux 文件属性的命令行工具。如果您有任何问题或反馈,请随时发表评论。