ls -b
印刷できない文字を含むファイル名は印刷する必要があります。たとえば、としてマークする必要がありますが、macOSでは動作しませんが、まだ機能しているex ex.txt
理由を知っている人はいますか?ex\ ex.txt
ex ex.txt
答え1
この-b
オプションはそうではありません。標準化したがって、その動作は実装によって異なります。
多くのLinuxシステムはデフォルトでGNU lsを使用し、-b
オプションを次のように定義します。
グラフィック以外の文字に対してCスタイルのエスケープを印刷する
そして詳細なリファレンス実装。空白文字はグラフィックではなく文字なので、最終的にエスケープされます。
macOSで定義-b
は異なっている:
-雨 印刷できない文字を強制的に印刷します(提供:
ctype(3)
現在のロケール)をファイル名に含めます\xxx
。ここでXXX8進文字の数値です。-雨 〜のように-雨、可能であればCエスケープコードを使用してください。
関数ctype
(またはマクロ)は空白文字を印刷可能と見なし、エスケープしません。