2016-06-20 7 views
0

Ich versuche zsh alias zu verwenden, um meinen ls Befehl Ausdruck meine Dateien in einem schöneren Format printf zu machen. In meiner .zshrc Datei habe ich diese Zeile:ZSH alias printf

alias lsp="printf '|%15s |%15s |%15s |\n' $(ls)" 

Aus irgendeinem Grund, wenn ich ‚lsp‘ in die Befehlszeile eingeben, erhalte ich: zsh: command not found: lsp

Ich versuche, mein Alias, um herauszufinden, warum nicht ist Arbeiten, zum Beispiel direkt über Ich habe eine, die funktioniert mit: alias la="ls -la", wenn ich la gebe es spuckt den richtigen Befehl.

Ich vermute, etwas mit meinem Anführungszeichen ausgeschaltet ist, hat jemand eine Idee?

+1

Sie können - und wahrscheinlich sollte - Verwendung Globbing stattdessen die Ausgabe von 'ls' der Verwendung:' alias lsp = "printf '|% 15s |% 15s |% 15s | \ n' *" '. Da er keinen externen Befehl ausführen muss, hat er den Vorteil, dass er mit Dateinamen arbeitet, die Leerzeichen enthalten. Die Ausgabe von "ls" ist für den menschlichen Verzehr bestimmt und es ist schwierig, sie für nicht-triviale Fälle korrekt zu analysieren. Für den maschinellen Einsatz benutzen Sie entweder 'find' oder nutzen Sie die vielen Funktionen, die' zsh' in Sachen Globbing zu bieten hat. – Adaephon

Antwort

0

Es spielt Werke mit zsh 5.0.2 (x86_64-pc-linux-gnu). Vergessen Sie nicht, die Quelle .zshrc nach dem Hinzufügen von Alias ​​zu beziehen.

. .zshrc