"ls -b" funktioniert unter macOS nicht

"ls -b" funktioniert unter macOS nicht

ls -bsollte die Dateinamen mit nicht druckbaren Zeichen drucken, z. B. ex ex.txtsollte sie als angezeigt werden ex\ ex.txt, aber das funktioniert unter macOS nicht, es ist immer noch ex ex.txt. Kennt jemand den Grund?

Antwort1

Die -bOption ist nichtstandardisiert, daher ist sein Verhalten implementierungsabhängig.

Viele Linux-Systeme verwenden standardmäßig GNU ls; es definiert die -bOption als

Drucken Sie C-Stil-Escapes für nicht grafische Zeichen

und verwendet eineaufwendige Zitat-Implementierung. Das Leerzeichen ist ein nicht grafisches Zeichen und wird daher maskiert.

Unter macOSDefinition von-bist anders:

-B Erzwingen des Druckens nicht druckbarer Zeichen (wie definiert durchctype(3)und aktuelle Gebietsschemaeinstellungen) in Dateinamen als \xxx, wobeixxxist der numerische Wert des Zeichens im Oktalformat.

-B Als-B, aber verwenden Sie nach Möglichkeit C-Escape-Codes.

Die ctypeFunktionen (oder Makros) gehen davon aus, dass das Leerzeichen druckbar ist und daher nicht maskiert wird.

verwandte Informationen