나는 /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
두 번째로 놀라운 점은 이 파일들이 동일하지 않다는 것입니다.
$ 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진수 백슬래시 시퀀스를 사용하여 참조됩니다.