1、命令简介
getfattr:取文件系统对象的扩展属性。
2、命令用法
getfattr [-hRLP] -n name [-e en] pathname... getfattr [-hRLP] -d [-e en] [-m pattern] pathname...
3、命令描述
对于每个文件,getfattr命令会显示该文件相关联的文件名和该组的扩展属性的名称(和任选的值)。
这里的文件系统扩展属性,不是我们常说的lsattr命令和chattr命令中文件操作的属性。这里的扩展属性是完全自定义的。扩展属性的支持,不同文件系统对其支持程度不同。
getfattr -d
的输出格式如下:
1: # file: somedir/ 2: user.name0="value0" 3: user.name1="value1" 4: user.name2="value2" 5: ...
4、命令选项
选项 | 描述 |
-n name, --name=name | dump 已命名扩展属性的值。 |
-d, --dump | dump与pathname相关的所有扩展属性的值 |
-e en, --encoding=en | 在检索值之后对其进行编码。 en的有效值为"text"、"hex"和"base64"。 编码为文本字符串的值用双引号括起来("), 而编码为十六进制 和base64的字符串则分别以0x和0s作为前缀 |
-h, --no-dereference | 不要遵循符号链接。如果pathname是符号链接, 则检查符号链接本身,而不是链接引用的文件。 |
-m pattern, --match=pattern | 只包含名称与正则表达式模式匹配的属性。 pattern的默认值是"^user\\.", -m它包含用户名称空间中的所有属性。 |
--absolute-names | 不要去掉前面的斜杠字符(' / ')。 默认行为是去掉前导斜杠字符。 |
--only-values | 只dump扩展属性值。 |
-R, --recursive | 递归列出所有文件和目录的属性。 |
-L, --logical | Logical walk, 遵循符号链接。 默认行为是遵循符号链接参数, 并跳过子目录中遇到的符号链接。 |
-P, --physical | Physical walk, 跳过所有符号链接。 这也会跳过符号链接参数。 |
--version | 打印getfattr版本并退出。 |
--help | 打印说明命令行选项的帮助。 |
-- | 命令行选项的结束。 所有剩下的参数都被解释为文件名,即使它们以破折号开头。 |
5、使用示例
1)如果不设置任何扩展属性,该命令将不会显示任何内容
getfattr -d cjavapy.txt
2)可以使用setfattr命令为文件设置扩展属性,设置了扩展属性后,命令getfatattr将显示如下所示的输出
setfattr -n user.Name1 -v Value1
setfattr -n user.Name2 -v Value2
getfattr -d cjavapy.txt
# file: cjavapy.txt
user.Name1="Value1"
user.Name2="Value2"
3)可以使用-n选项只显示特定的属性
getfattr -n user.Name2 cjavapy.txt
# file: cjavapy.txt
user.Name2="Value2"