"ls -b"는 macOS에서 작동하지 않습니다

"ls -b"는 macOS에서 작동하지 않습니다

ls -b인쇄할 수 없는 문자가 포함된 파일 이름은 인쇄되어야 합니다. 예를 들어 ex ex.txt로 표시되어야 ex\ ex.txt하지만 macOS에서는 작동하지 않지만 여전히 작동하는 ex ex.txt이유를 아는 사람이 있습니까?

답변1

-b옵션은 그렇지 않습니다.표준화이므로 해당 동작은 구현에 따라 다릅니다.

많은 Linux 시스템은 기본적으로 GNU ls를 사용하며 -b옵션을 다음과 같이 정의합니다.

그래픽이 아닌 문자에 대해 C 스타일 이스케이프 인쇄

그리고자세한 참조 구현. 공백 문자는 그래픽이 아닌 문자이므로 결국 이스케이프됩니다.

macOS에서정의-b은 다르다:

-비 인쇄할 수 없는 문자를 강제로 인쇄합니다(제공:ctype(3)및 현재 로케일)을 파일 이름에 포함 \xxx합니다. 여기서트리플 엑스8진수 문자의 숫자 값입니다.

-비 ~처럼-비, 가능하면 C 이스케이프 코드를 사용하세요.

함수 ctype(또는 매크로)는 공백 문자를 인쇄 가능한 것으로 간주하고 이스케이프하지 않습니다.

관련 정보