`ls -l` 输出中 `-rw-r--r--@` 中的 @ 符号代表什么意思?

18

我正在检查 Mac OS X 上 bash 完成文件夹中 ls -l 的输出结果

$ ls -alrth /usr/local/etc/bash_completion.d/docker-machine* 
-rw-r--r--@ 1 abhimskywalker  staff   1.4K Jun 13 19:04 /usr/local/etc/bash_completion.d/docker-machine-prompt.bash
-rw-r--r--@ 1 abhimskywalker  staff   1.5K Jun 13 19:36 /usr/local/etc/bash_completion.d/docker-machine-wrapper.bash
-rw-r--r--@ 1 abhimskywalker  staff   6.8K Jun 13 19:37 /usr/local/etc/bash_completion.d/docker-machine.bash

我不明白在 -rw-r--r--@ 中的 @ 代表什么意思?


1
可能有一个ACL或其他限制。 - Marc B
1个回答

20

这表示文件具有扩展属性。您可以使用xattr命令行实用程序来查看和修改它们:

xattr -l file # lists the names of all xattrs.
xattr -w attr_name attr_value file # sets xattr attr_name to attr_value.
xattr -d attr_name file # deletes xattr attr_name.
xattr -c file # deletes all xattrs.
xattr -h # prints help

您还可以使用 ls -l@ 命令查看有关这些扩展属性的更多信息。

根据 OSX 的 ls 手册:

长格式
如果文件或目录具有扩展属性,则由 -l 选项打印的权限字段后面会跟随一个 @ 字符。否则,如果文件或目录具有扩展安全信息,则由 -l 选项打印的权限字段后面会跟随加号字符 (+)。

以及

-@ 在长格式(-l)输出中显示扩展属性键和大小。


我把我的答案添加到你的答案中,使其更完整。如果你不想要它,随时可以回滚。 - 123
2
正如你所说,我也认为这个答案更完整,所以我会保留你的修改。谢谢 :) - achref
啊...我的错,我在man手册中漏掉了这个。谢谢! 我看到了扩展属性的-@选项,但是在OS X man手册中找不到关于@的“长格式”描述。 - abhimskywalker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接