Antworten:
Es gibt kein einfaches Äquivalent an ls
sich, aber es gibt das less
Dienstprogramm, das die Ausgabe eines Befehls als separate Seiten formatiert, die zeilen- oder seitenweise gescrollt werden können:
ls -C | less
Wobei -C
die Spaltenanzeige auslöst. Verwendung lah
als Argumente ( ls -lah
) , um ein zu bekommen l ine durch zeiliges Display mit einer ll - Dateien angezeigt werden (einschließlich unsichtbare) und h uman lesbar Dateigrößen.
Damit Farben richtig angezeigt werden , müssen Sie das --color=always
Argument ls
und das -R
Argument auf less * hinzufügen :
ls -C --color=always | less -R
dies zeigt 'ls -ah --color = always | weniger -R '
Im Gegensatz zu more
können less
Sie durch die Ausgabe scrollen. Es ist auch ein bisschen schneller für sehr große Inserate.
Die Pipe funktioniert so:
Jedes Programm hat Eingabe und Ausgabe, eine Pipe leitet die Ausgabe eines Programms (ls) an die Eingabe eines anderen Programms (weniger) weiter. Und erwartet weniger einfach Eingaben, die es dann formatiert.
Ein altmodischeres Dos-Äquivalent wäre pg
:
ls | pg
Du kannst auch
ls | head
oder ls | tail
, um nur den ersten oder letzten Teil der Ausgabe anzuzeigenwatch "ls"
die Anzeige offen zu halten, ist es alle paar Sekunden zu aktualisieren Änderungen zu sehenbanner $(ls)
Sie diese Option, wenn Sie sehr weit vom Bildschirm entfernt sitzen. (;Wenn Sie all das zu lange im Gedächtnis behalten, können Sie einen Alias dafür einrichten :
Öffne es ~/.bash_aliases
mit einem Texteditor und füge etwas hinzu:
alias lsp="ls -ah --color=always | less -R"
(Dies ist ein Skript, das jedes Mal ausgeführt wird, wenn ein neues virtuelles Terminal gestartet wird. Sie sollten alle permanenten Aliase dort einrichten.)
Jetzt können Sie einfach einen lsp
beliebigen Namen eingeben.
Wenn Sie weitere Argumente an Ihren Alias übergeben möchten, müssen Sie stattdessen eine Funktion definieren :
lsp(){ ls -ah --color=always "$@" | less -R; }
Eine Funktion, hauptsächlich wie folgt aussehen: name(){ commands; };
kann Argumente akzeptieren $1
, $2
, $3
und so weiter. $@
bedeutet "jedes Argument, falls vorhanden" .
Sie können nun so etwas wie laufen lsp *.py
, lsp -C
und so weiter. Wir fügen die Argumente an der Stelle ein, an der sie an ls übergeben werden. Wir hätten auch $ * für weniger einfügen können, wenn es der wichtige Befehl wäre. Sie können alle Argumente von ls unter man ls
(lesenswert) sehen.
*: Der Grund dafür ist, dass bei jedem Pipe-Vorgang ein Terminal (eigentlich das andere Programm) erkannt wird, das keine Farbe anzeigen kann. "--color = always" zwingt ls, dies zu ignorieren. Mit der Option -R wird der Bildschirm weniger neu gestrichen , und die Farben werden ordnungsgemäß ausgeblendet.
$*
und $@
genau das Gleiche tun. Sie erweitern um $1 $2 $3 ...
. Das Anführungszeichen "$@"
erweitert sich jedoch zu "$1" "$2" "$3" ...
while ( "$*"
dh "$1 $2 $3 ..."
alle Argumente in einer Zeichenfolge, wobei das erste Zeichen von IFS
als Trennzeichen verwendet wird). mywiki.wooledge.org/BashGuide/Parameters