Macos 使用ls甚至ls-a时.app的bin不可见

Macos 使用ls甚至ls-a时.app的bin不可见,macos,unix,Macos,Unix,昨天我注意到一件相当有趣的事。ls和ls-a不显示.app目录?的未工作状态,但是如果知道路径,您可以将cd刻录到应用程序的bin文件中。这是为什么?我不是Mac世界的人,但一般来说,当要求提供给定目录的内容时,文件系统会提供一个名称列表;当要求该目录中的某个特定条目时,即使该条目以前没有列出,也可以自由返回值。这两个函数通常是独立的,但当然大多数文件系统在大多数情况下都保持这些一致性。似乎OSX故意打破了这种一致性 例如: 文件系统被要求提供目录/foo/bar的内容,并返回条目xyz、abc

昨天我注意到一件相当有趣的事。ls和ls-a不显示.app目录?的未工作状态,但是如果知道路径,您可以将cd刻录到应用程序的bin文件中。这是为什么?

我不是Mac世界的人,但一般来说,当要求提供给定目录的内容时,文件系统会提供一个名称列表;当要求该目录中的某个特定条目时,即使该条目以前没有列出,也可以自由返回值。这两个函数通常是独立的,但当然大多数文件系统在大多数情况下都保持这些一致性。似乎OSX故意打破了这种一致性

例如:

文件系统被要求提供目录/foo/bar的内容,并返回条目xyz、abc和blah的列表。这意味着存在/foo/bar/xyz、/foo/bar/abc和/foo/bar/blah条目。 当询问路径/foo/bar/ghi的状态时,可以假设文件系统现在必须回答没有此类文件或类似错误的问题。但事实上,它不必这样做。它可以返回表示路径为目录或类似路径的统计信息。 虽然这在一般情况下是不寻常的,但操作系统本身和大多数工具可以很好地处理这种情况。像ls或find这样的工具依赖于目录条目列表,因此它们只处理文件系统返回的条目。但如果给定一个不属于目录项列表的显式路径,它们将处理该路径

您可以做一个测试:如果ls-la/Applications/没有列出MATLAB_R2013a_Student.app,您可能仍然可以通过直接键入ls-la/Applications/MATLAB_R2013a_Student.app来获取信息


更多说明:是否输入该目录cd不重要。cd可以在任何存在的目录上进行,并且您对其父目录具有执行权限,仅此而已。ls的-a标志也列出了以a开头的文件,但它们不被认为是隐藏的,只有系统,即。E与正常用户交互无关。大多数点文件都是配置文件等。

您的问题相当不清楚。什么是工作不足?你说的是子目录吗?什么是.app目录?你说的目录是什么意思?你的问题是什么?是吗?应该是通配符吗?bin文件是什么?从什么时候开始可以将cd刻录到文件中?我只能用目录才能做到这一点。我担心,你的问题措辞不适合这样。我为你的问题不够清晰而道歉。您可以将cd刻录到应用程序目录,但看不到应用程序文件。但是,您可以通过cd appname/bin/mexopts.sh进入应用程序,例如在matlab中。您使用的是什么系统?Unix不是很具体;-你在看什么文件系统?使用dfdir,您通常可以看到目录dire的位置。g/home/alfe/some/path安装在e上。G在/home/alfe上,mount | grep/home/alfe可以告诉您这是什么类型的文件系统。G键入fuse.gvfs-fuse-daemon用于加密的主目录或更简单的东西,如ext4.yosemite 10.10 cd/Applications/MATLAB\u r2013 a\u Student.app/bin。如果要在应用程序目录级别键入cd,则除了SecureDownloadManager.app和SecureDownloadManager.log之外,您不会看到任何内容