我希望能够确定在命令行上从Finder的角度来看,诸如'.app'之类的目录是否被视为包或包.我认为这对于一个小型的shell程序来说并不困难,但如果我不需要,我宁愿不重新发明轮子.
这有点晚了,但是:看起来你可以使用mdls命令检测bundle.具体来说,(多行)输出:
mdls -name kMDItemContentTypeTree /Path/To/Directory
将包含字符串
"com.apple.package"
(如果目录是包,则包括引号,至少是Lion的引号).如果包也是一个包,则输出也将包含
"com.apple.bundle"
最后但并非最不重要的是,如果它是一个特定的应用程序包,输出也将包含
"com.apple.application-bundle"
(这是根据一些非常有限的测试,但从Apple的统一类型标识符文档和mdls的手册页,这应该成立.对于我测试的项目,这对于非Apple提供的捆绑包也是如此,鉴于UTI的目的,这是你所期望的.)