Mac OS X 上的目录列表

use*_*150 4 ls permissions macos

我将一堆文件(音乐和其他文件)转储到我闪亮的新 Macbook 上,由于我对 linux 比 Mac 更习惯(此时),我倾向于使用终端。

我对传输的文件执行了 ls -al,有些在权限字符串的末尾有一个“@”,有些没有。

就像是:

drwxrwxr--@ 93 user staff etc.
drwxrwxr-- 107 user staff etc.
Run Code Online (Sandbox Code Playgroud)

没有“@”的文件可以在 Finder 中看到并被其他程序访问——“@”文件和目录是不可见的。任何人都可以解释“@”的含义,以及如何 chmod(或其他)以便我可以使用这些文件?我认为这是某种系统标志,但我不知道如何取消设置。Chmod 777 没有效果,我已经拥有这些文件。

谢谢

JT.*_*.WK 6

此链接解释了如何使用“@”符号来表示文件具有“附加属性”,可通过键入以下内容查看:

xattr -l <​​文件名>

附加属性用于存储有关文件的额外信息。例如,当从 Internet 下载文件时,它可能包含一个附加属性,该属性在执行时触发“警告此文件已下载...”消息。


Gor*_*son 5

正如 JT.WK 所说,“@”表示附加到文件的扩展属性。尝试ls -lO@在文件上使用——-O显示文件标志,-@显示扩展属性的名称(但不是内容)。我的猜测是你会看到com.apple.FinderInfoxattrs 和hidden标志(注意:我在这里假设是 Mac OS X 10.5 或10.6——旧版本没有将invisibleFinder 标志映射到文件标志)。假设我是对的,您可以使用以下方法清除标志:

chflags nohidden /path/to/file
Run Code Online (Sandbox Code Playgroud)

(如果您使用的是 Mac OS X v10.4,Finder 标志几乎无法从命令行访问 - 让我知道,我会看看我能想出什么。)