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