/usr/bin/dir
私はほとんどが/usr/bin/ls
。私はこれがただへのソフトリンクであると思いましたが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
2番目に驚くべきことは、これらのファイルが同じではないということです。
$ 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
これを明確に説明していません。
dir
つまりls -C -b
、基本ファイルは列にリストされ、垂直に並べ替えられ、特殊文字はバックスラッシュエスケープシーケンスとして表示されます。バラより
ls
。
オプション-C
&のドキュメント-b
もあります。
-C
--format=vertical
他の情報なしでファイルを列ごとに一覧表示し、垂直に並べ替えます。ls
標準出力が端末の場合はデフォルトです。これは常にプログラムのデフォルトですdir
。 GNU は、ls
可変幅の列を使用して、最小限の行にできるだけ多くのファイルを表示します。
-b
--escape
--quoting-style=escape
ファイル名の非グラフィック文字は、Cで使用される文字と8進数のバックスラッシュシーケンスを使用して参照されます。