«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, гдехххчисловое значение символа в восьмеричной системе.

Как, но по возможности используйте управляющие коды C.

Функции ctype(или макросы) считают, что символ пробела является печатным, поэтому он не экранируется.

Связанный контент