【问题标题】:What does @ mean next to the file attributes in unix? [closed]unix 中文件属性旁边的@是什么意思? [关闭]
【发布时间】:2017-03-13 16:30:13
【问题描述】:

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

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

我只是好奇@ 符号是什么意思?我认为它是一个文件属性,但我用谷歌搜索它并找不到任何对它的引用。

【问题讨论】:

  • ...或SuperUser。来自stackoverflow.com/help/on-topic——一个问题必须是“软件开发独有的”才能适合SO。 (在这种情况下,这可能意味着该文件存在 POSIX ACL,但这将是特定于您的操作系统的东西——这不是所有 Unixen 的惯例)。
  • 本,你的 Unix 是什么?是 linux 或 BSD 或 Macos 还是别的什么?您的ls 实用程序的版本是什么?

标签: unix file-attributes


【解决方案1】:

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

-l, -n, [XSI] [Option Start] -g, and -o [Option End] 选项下写入的文件模式应由以下格式组成:

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

如果没有与文件关联的替代或附加访问控制方法,&lt;optional alternate access method flag&gt; 应为空字符串;否则,它应该是一个包含单个可打印字符的字符串,不是&lt;blank&gt;

因此,这告诉我们存在“与文件关联的替代或附加访问控制方法”。通常,这类似于 ACL,getfacl(在 Linux 系统上)之类的命令可以检索和查看它。


然而,特别是对于 MacOS,文档ls 指定 xattrs 的存在与此字符一起显示。引用其手册页:

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

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

【讨论】:

  • macosls或其他macos命令列出完整ACL数据的选项是什么?
  • ls -le 将打印 ACL; ls -l@ 将列出 xattrs。
【解决方案2】:

“@”符号表示文件具有扩展属性。您可以使用命令“xattr -l”来显示它们。看起来很多本来应该存储在目录中的Finder信息现在都在扩展属性中。

【讨论】:

  • 如果 xattrs 与 ACL 以这种方式显示,则可能违反了 ls 的相关 POSIX 规范(该规范为“访问控制方法”保留该字符)。
  • Brian,这是在哪里记录的?
  • 复制macos man ls online: ss64.com/osx/ls.html "如果文件或目录有扩展属性,-l选项打印的权限字段后跟@字符,否则,如果文件或目录具有扩展的安全信息,则 -l 选项打印的权限字段后跟一个 + 字符。"; apple.stackexchange.com/questions/97241unix.stackexchange.com/questions/1646的副本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-07-21
  • 2015-11-11
  • 1970-01-01
  • 1970-01-01
  • 2012-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多