最近需要基于linux文件系统的扩展属性,做一些自定义的操作;在这里对调研过程进行简要记录;我们常见的很多服务如glusterfs 等,都是使用文件扩展属性做一些定制化的操作;
扩展属性(xattrs)提供了一种机制,用来将键值对永久得关联到文件;让现有的文件系统得以支持在原始设计中未提供的功能。扩展属性是目前流行的POSIX 文件系统具有的一项特殊的功能,可以给文件,文件夹添加额外的Key-value的键值对,键和值都是字符串并且有一定长度的限制。扩展属性需要底层文件系统的支持,在使用扩展属性的时候,需要查看文件系统说明文章,看此文件系统是否支持扩展属性,以及对扩展属性命名空间等相关的支持。包括btrfs、ext2、ext3、ext4、JFS、Reiserfs,Lustrefs以及XFS等文件系统都支持EA。而各类文件系统对于扩展属性的支持都是可选项。
常用的命令: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