最近需要基于linux文件系统的扩展属性,做一些自定义的操作;在这里对调研过程进行简要记录;我们常见的很多服务如glusterfs 等,都是使用文件扩展属性做一些定制化的操作;
扩展属性(xattrs)提供了一种机制,用来将键值对永久得关联到文件;让现有的文件系统得以支持在原始设计中未提供的功能。扩展属性是目前流行的POSIX 文件系统具有的一项特殊的功能,可以给文件,文件夹添加额外的Key-value的键值对,键和值都是字符串并且有一定长度的限制。
常用的命令:setfattr, getfattr, attr; 关于命令的详细使用可以参考man-pages进行发现;
apt list attr
/. /usr /usr/bin /usr/bin/attr /usr/bin/getfattr /usr/bin/setfattr /usr/share /usr/share/doc /usr/share/doc/attr /usr/share/doc/attr/PORTING /usr/share/doc/attr/README /usr/share/doc/attr/copyright /usr/share/man /usr/share/man/man1 /usr/share/man/man1/attr.1.gz /usr/share/man/man1/getfattr.1.gz /usr/share/man/man1/setfattr.1.gz /usr/share/man/man5 /usr/share/man/man5/attr.5.gz /usr/share/doc/attr/changelog.Debian.gz /usr/share/doc/attr/changelog.gz
setfattr -n user.foo -v bar test #设置 getfattr -n user.foo test # 读取 setfattr -x user.foo test # 删除 attr -lq test # 列举属性,不包含命名空间 getfattr -d -m ".*" test # 列举所有属性,包含命名空间
这里的文件系统扩展属性,不是我们常说的lsattr和chattr中文件操作的属性。这里的扩展属性是完全自定义的。
保持更新,转载请注明出处,更多内容请关注cnblogs.com/xuyaowen;
参考链接:
https://en.wikipedia.org/wiki/Extended_file_attributes