ls -l 输出中的“@”符号是什么意思?

Lev*_*tix 14 command-line-interface mac-osx ls

我在 MacOSX 上有这个输出:

$ ls -l
total 40
-rwxr-xr-x@ 1 levente  staff   52 30 Sep 15:38 pl
-rwxr-xr-x  1 levente  staff  675 14 Feb 17:07 plplay
-rwxr-xr-x@ 1 levente  staff  662 26 Jan 14:13 plstart
-rwxr-xr-x@ 1 levente  staff  296  1 Dec 11:50 plstop
-rwxr-xr-x@ 1 levente  staff  268 29 Dec 18:44 plweb
Run Code Online (Sandbox Code Playgroud)

权限旁边的“@”是什么意思?

kas*_*ani 18

这意味着这些文件具有来自文件系统的扩展属性,这些属性不是正常的 Unix 权限。尝试执行 xattr plstart 并查看设置了哪些内容。

  • `ls -l@` 也会列出扩展属性。使用 `xattr -l` 来查看 xattr 值以及属性名称。 (2认同)

Sco*_*ack 6

Kashani 使用xattr来显示额外的繁琐位。更具体地说,在 OSX 上,这可能就是所谓的资源分叉。OSX 使用的底层文件系统 HFS+ 具有可以存储各种信息的额外数据段。顺便说一下,您也可以在 SMB、NTFS 等挂载上以 ._FILENAME 文件的形式看到相同的内容。

有关 Resource Forks 的完整文章,请参阅维基百科文章Apple Developer站点。