「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是八進位字元的數值。

-b 作為-B,但盡可能使用 C 轉義碼。

函數ctype(或巨集)認為空格字元是可列印的,因此不會對其進行轉義。

相關內容