「ls -b」はmacOSでは動作しません

「ls -b」はmacOSでは動作しません

ls -b印刷できない文字を含むファイル名は印刷する必要があります。たとえば、としてマークする必要がありますが、macOSでは動作しませんが、まだ機能しているex ex.txt理由を知っている人はいますか?ex\ ex.txtex ex.txt

答え1

この-bオプションはそうではありません。標準化したがって、その動作は実装によって異なります。

多くのLinuxシステムはデフォルトでGNU lsを使用し、-bオプションを次のように定義します。

グラフィック以外の文字に対してCスタイルのエスケープを印刷する

そして詳細なリファレンス実装。空白文字はグラフィックではなく文字なので、最終的にエスケープされます。

macOSで定義-bは異なっている:

-雨 印刷できない文字を強制的に印刷します(提供:ctype(3)現在のロケール)をファイル名に含めます\xxx。ここでXXX8進文字の数値です。

-雨 〜のように-雨、可能であればCエスケープコードを使用してください。

関数ctype(またはマクロ)は空白文字を印刷可能と見なし、エスケープしません。

関連情報