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

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

我在 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

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

答案1

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

答案2

Kashani 正确地使用了xattr显示额外繁琐部分。更具体地说,在 OSX 上,这很可能是所谓的资源分叉。OSX 使用的底层文件系统 HFS+ 具有额外的数据段,可以存储各种信息。顺便说一句,您还可以在 SMB、NTFS 等挂载上以 ._FILENAME 文件的形式看到同样的东西。

有关资源分叉的完整内容,请参阅维基百科文章或者苹果开发者地点。

相关内容