@ Unix中的文件属性旁边是什么意思



我注意到我有一个在终端中键入 ls -lah时看起来像这样的文件:

-rw-r--r--@    1 bj5  1704   2.3M 13 Mar 16:12 All_Metadata.csv

我只是对@符号的含义感到好奇?我认为这是一个文件属性,但我搜索了它,找不到任何参考。

由于您已标记为unix,因此适用于所有Unixen的控制标准是IEEE 1003.1。引用相同的引用:

在-l,-n,[xsi] [option start] -g和-o [选项end]选项下写的文件模式应包含以下格式:

"%c%s%s%s%s", <entry type>, <owner permissions>,
    <group permissions>, <other permissions>,
    <optional alternate access method flag>

如果没有与文件关联的其他或其他访问控制方法,则<optional alternate access method flag>应为空字符串;否则,它将是一个包含一个不是<blank>的单个可打印字符的字符串。

因此,这告诉我们"与文件关联的替代或其他访问控制方法"。通常,这是类似于ACL的东西,像getfacl(在Linux系统上)这样的命令可以检索并查看。


专门针对MacOS,文档ls指定使用此字符显示XATTRS的存在。从其人页面引用:

如果文件或目录具有扩展属性,则-l选项打印的权限字段之后是"@"字符。否则,如果文件或目录具有扩展的安全信息(例如访问控制列表),则-l选项打印的权限字段后面是" "字符。

因此,在MacOS上,用@指示ACL的存在,ACLs用+表示。

"@"符号指示文件已扩展属性。您可以使用命令" XATTR -L"显示它们。似乎许多应该存储在目录中的Finder信息现在都处于扩展属性中。

最新更新