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
。
默认情况下,使用cp
或rsync
等命令复制文件时,不会保留文件的属性。
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文件系统上的文件属性。
如果你有任何问题或反馈意见,请随时留言。
0 个评论