it-swarm.com.de

Wie aktiviere ich die Paginierung für den Befehl ls?

Was ist die äquivalente Option für den Befehl ls, um die Paginierung zu aktivieren, wie dies unter DOS bei dir /p der Fall ist?

33
NES

Es gibt keine einfache Entsprechung in ls selbst, aber es gibt das Dienstprogramm less , mit dem die Ausgabe eines Befehls als separate Seiten formatiert wird, die zeilen- oder seitenweise gescrollt werden können:

ls -C | less

Wobei _-C_ die Spaltenanzeige auslöst. Verwenden Sie lah als Argumente (_ls -lah_), um a zu erhalten line zeilenweise Anzeige mit einalle angezeigten Dateien (einschließlich ausgeblendeter) und human lesbare Dateigrößen.

  • Damit Farben richtig angezeigt werden, müssen Sie das Argument _--color=always_ zu ls und das Argument _-R_ zu less * hinzufügen:

    ls -C --color=always | less -R

    alt text
    Dies zeigt 'ls -ah --color = always | weniger -R '

Im Gegensatz zu more können Sie mit less 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 älteres Dos-Äquivalent wäre pg :

    _ls | pg
    _

Du kannst auch

  • Verwenden Sie _ls | head_ oder _ls | tail_, um nur den ersten oder letzten Teil der Ausgabe anzuzeigen
  • Verwenden Sie _watch "ls"_, um die Anzeige geöffnet zu halten, und aktualisieren Sie sie alle paar Sekunden, um Änderungen zu beobachten
  • Verwenden Sie banner $(ls), 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 _~/.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 lsp oder einen beliebigen Namen eingeben.

    Wenn Sie in der Lage sein möchten, Ihrem Alias ​​weitere Argumente zu übergeben, müssen wir stattdessen eine Funktion definieren:

    _lsp(){ ls -ah --color=always "[email protected]" | less -R; }
    _

    Eine Funktion, die hauptsächlich so aussieht: name(){ commands; }; kann Argumente akzeptieren, _$1_, _$2_, _$3_ und so weiter. _[email protected]_ bedeutet "jedes Argument, falls vorhanden" .

    Sie können jetzt _lsp *.py_, _lsp -C_ usw. ausführen. 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. Der Schalter -R bewirkt, dass der Bildschirm weniger neu gestrichen wird die Farben werden ausgeblendet richtig.

53
Stefano Palazzo

Ich bin mir nicht sicher, ob es einen Befehl zur Paginierung gibt. Sie können jedoch eine Pipe und less wie folgt verwenden:

ls | less

Und mit q beenden.

3
Ragnar123

Versuchen Sie es mit ls | less oder ls | more. Die zweite ist der DOS-Version sehr ähnlich.

1
FUZxxl