Linux中的Chattr命令(文件属性)

评论 0 浏览 0 2020-12-10

在Linux中,文件属性是描述文件行为的元数据属性。例如,一个属性可以表明一个文件是否被压缩,或者指定该文件是否可以被删除。

有些属性,如不可更改性,可以设置或清除,而其他属性,如加密,是只读的,只能查看。对某些属性的支持取决于正在使用的文件系统。

本文介绍了如何使用chattr命令来改变Linux文件系统中的文件属性。

chattr 句法

chattr命令的一般形式如下:。

chattr [OPTIONS] [OPERATOR][ATTRIBUTES] FILE...

[OPERATOR]部分的值可以是以下的符号之一。

  • + - 加号运算符告诉chattr将指定的属性添加到现有的属性中去。
  • - - 减法运算符告诉chattr从现有的属性中删除指定的属性。
  • = - 等价运算符告诉chattr将指定的属性设置为唯一的属性。

操作符后面有一个或多个[ATTRIBUTES]标志,你想从文件属性中添加或删除。下面是一些常见的属性和相关标志的列表。

  • a - 当这个属性被设置时,文件只能在追加模式下被打开进行写入。
  • A - 当设置了这个属性的文件被打开时,它的atime记录不会被改变。atime(访问时间)是该文件最后一次被某个命令或应用程序访问/打开的时间。
  • e - 这个属性表示该文件使用extents来映射磁盘上的块。e属性不能用chattr修改。
  • i - 这个属性表示文件是不可改变的,这意味着该文件不能被删除或重命名。

要获得所有文件属性和标志的完整列表,请在终端键入man chattr

默认情况下,使用cprsync等命令复制文件时,不会保留文件的属性。

chattr 例子

chattr的常见用途之一是为一个文件或目录设置不可更改的标志,以防止用户删除或重命名该文件。

你可以用lsattr命令查看文件的属性。

lsattr todo.txt

下面的输出显示,只有e标志被设置了。

输出

--------------e----- todo.txt

要使文件变得不可更改,请将i标志与+操作符一起添加到现有的属性中。

sudo chattr +i todo.txt

我们使用sudo,因为只有root才可以改变不可变的标志。

确认该属性已被添加。

lsattr todo.txt

输出

----i---------e----- todo.txt

要恢复这些变化并删除不可变的标志,请使用-操作符。

sudo chattr -i todo.txt

使用chattr,你可以一次添加或删除多个属性。例如,要使文件不可改变,并告诉内核不要跟踪最后一次访问的时间,你可以使用。

sudo chattr +iA todo.txt

你可以使用的最后一个运算符是=运算符。例如,要将e属性设置为唯一的属性,你可以运行。

sudo chattr "=e" todo.txt

请注意,操作符和标志都用引号括起来了,以避免 shell 解释+字符。

总结

chattr是一个命令行工具,用于改变Linux文件系统上的文件属性。

如果你有任何问题或反馈意见,请随时留言。

最后更新2023-09-11
0 个评论
标签