「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異なります:

-B 印刷できない文字(ctype(3)ファイル名には、現在のロケール設定と現在のロケール設定が\xxx次のように記述されます。xxx文字の 8 進数値です。

-b として-Bただし、可能な場合は常に C エスケープ コードを使用してください。

関数ctype(またはマクロ) はスペース文字が印刷可能であると見なすため、エスケープされません。

関連情報