"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(또는 매크로)는 공백 문자가 인쇄 가능하다고 간주하므로 이스케이프되지 않습니다.

관련 정보