使用 ls -a 与 ls -A

使用 ls -a 与 ls -A

ls -a有人会过度使用有什么理由吗ls -A?也就是说,能够...曾经展示过任何有用的东西吗?我以前使用-a只是因为我不知道那-A是同一件事,但没有.and ..。这让我回到了我的问题:是否-a曾经展示过任何不平凡的东西.或者..有人可能想看到的东西?

答案1

最初ls只支持-a,已经在 Unix 的第一个版本中就有70年代初。

一个-A选项在 70 年代末被添加到 BSD ls(尽管直到 80 年代末才被记录),正是因为ls -a列出.or..很少有用。ls90年代初的GNU实现从一开始就拥有它(也称为--almost-allthere)。

POSIX 在其 2008 年版本中最终指定了该选项,因此它最终适用于大多数其他ls实现。但到那时大多数人已经习惯了打字ls -a

ls -als -la当您除了目录中的文件之外还想检查当前目录和父目录的权限、修改时间等时,有时会很有用。

请注意,虽然 POSIX 要求 和dir/. 分别dir/..解析到dir和 其父目录(以及...到当前工作目录及其父目录),但它不需要readdir()返回...条目,也不要求将这些...实现为实际目录条目,如下所示它们位于 Unix 的原始版本中。因此,您可以找到ls -a既不报告.也不报告的系统..。在 Linux 上,...不会作为目录条目存储在多个文件系统中,但是readdir()(好吧,getdents()下面的系统调用)在这种情况下仍然会伪造它们。

一个相关的(而且更糟糕的)问题是一些 shell 包括...的扩展.*。那是原因rm -rf .rm -rf ..失败例如,作为防止这些炮弹的错误特征的保障措施。

答案2

根据 的手册页ls,没有太大区别。

       -a, --all
              do not ignore entries starting with .

       -A, --almost-all
              do not list implied . and ..

-A将列出以 a 开头的所有条目.,但省略条目...

答案3

我能看到的唯一优点是当前目录和父目录中的链接数量。这可以为您提供有关父目录或当前目录中子目录数量的信息。

相关内容