Linux 上的 /usr/bin/dir 二进制文件是什么?

Linux 上的 /usr/bin/dir 二进制文件是什么?

我注意到我有一个/usr/bin/dir大部分行为类似于/usr/bin/ls.我首先认为这对于来自 DOS/Windows 的人来说是一种方便。我以为这只是一个到 的软链接ls,但我的第一个惊喜是这是一个单独的二进制文件:

$ ls -la /usr/bin/dir /usr/bin/ls
-rwxr-xr-x 1 root root 125736 Feb  7  2022 /usr/bin/dir
-rwxr-xr-x 1 root root 125736 Feb  7  2022 /usr/bin/ls

我的第二个惊喜是这些文件不一样:

$ md5sum /usr/bin/dir /usr/bin/ls
997a2268f6d68d4b3f309dce17b39261  /usr/bin/dir
c12515ea5d425b198c1e44d6470588af  /usr/bin/ls

这是在:

$ uname -a
Linux ip-172-31-63-158 6.2.0-1017-aws #17~22.04.1-Ubuntu SMP Fri Nov 17 21:19:35 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux

答案1

GNU Coreutils 文档中解释了这种差异。不幸的是ls&的共享联机帮助页dir没有明确说明这一点。

10.2 dir: 简要列出目录内容

dir相当于ls -C -b;即默认文件按列列出,垂直排序,特殊字符用反斜杠转义序列表示。

ls

选项-C&的文档-b也在那里。

10.1.4 一般输出格式

-C
--format=vertical
按列列出文件,垂直排序,没有其他信息。ls如果标准输出是终端,则这是默认值。它始终是程序的默认值dir。 GNUls使用可变宽度列以最少的行显示尽可能多的文件。

10.1.6 设置文件名格式

-b
--escape
--quoting-style=escape
使用字母和八进制反斜杠序列引用文件名中的非图形字符,就像 C 中使用的那样。

相关内容