我将一堆文件(音乐和其他内容)转储到我崭新的 Macbook 上,由于我更熟悉 Linux 而不是 Mac(目前),所以我倾向于使用终端。
我对传输的文件执行了 ls -al,有些文件在权限字符串末尾有一个“@”,有些则没有。
就像是:
drwxrwxr--@ 93 user staff etc.
drwxrwxr-- 107 user staff etc.
没有“@”的文件可以在 Finder 中看到并被其他程序访问——带有“@”的文件和目录是不可见的。有人能解释一下“@”是什么意思,以及如何 chmod(或其他)以便我可以使用那些文件吗?我猜它是某种系统标志,但我不知道如何取消设置它。Chmod 777 没有效果,我已经拥有这些文件了。
谢谢
答案1
此链接解释如何使用“@”符号来表示文件具有“附加属性”,可以通过键入以下内容查看:
xattr -l <文件名>
附加属性用于存储有关文件的额外信息。例如,当从互联网下载文件时,它可能包含一个附加属性,该属性在执行时触发“警告此文件已下载...”消息。
答案2
正如 JT.WK 所说,“@”表示文件附加的扩展属性。尝试ls -lO@
在文件上使用——-O
显示文件标志,-@
显示扩展属性的名称(但不显示内容)。我猜你会看到com.apple.FinderInfo
xattrs 和标志hidden
(注意:我假设这里是 Mac OS X 10.5 或 10.6——旧版本没有将invisible
Finder 标志映射到文件标志中)。假设我对此是正确的,您可以使用以下命令清除标志:
chflags nohidden /path/to/file
(如果您使用的是 Mac OS X v10.4,Finder 标志几乎无法通过命令行访问 - 请告诉我,我会看看能想出什么办法。)