web-dev-qa-db-fra.com

Comment activer la pagination pour la commande ls?

Quelle est l’option équivalente pour la commande ls d’activer la pagination comme sous DOS le dir /p le fait?

33
NES

Il n'y a pas d'équivalent simple dans ls lui-même, mais il existe l'utilitaire less , qui formatera la sortie de toute commande sous forme de pages séparées, pouvant être défilées par ligne ou par page:

ls -C | less

-C déclenche l'affichage de la colonne. Utilisez lah comme arguments (ls -lah) pour obtenir un laffichage par ligne avec unetous les fichiers affichés (y compris ceux qui sont cachés), et htaille de fichier lisible par l'utilisateur.

  • Pour que les couleurs s'affichent correctement , vous devez ajouter l'argument --color=always à ls et l'argument -R sur less *:

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

    alt text
    ceci montre 'ls -ah --color = always | moins -R '

Contrairement à more , less vous permettra de faire défiler le résultat. C'est aussi un peu plus rapide pour les très grandes listes.

Le tuyau fonctionne comme ceci:

Chaque programme a des entrées et des sorties, un tuyau redirige la sortie d’un programme (ls) vers l’entrée d’un autre programme (moins). Et moins simplement attend une entrée qu’elle formate ensuite.

  • Un équivalent plus ancien de l'école serait pg :

    ls | pg
    

Vous pouvez également

  • Utilisez ls | head ou ls | tail pour afficher uniquement la première ou la dernière partie de la sortie.
  • Utilisez watch "ls" pour garder l'affichage ouvert et mettez-le à jour toutes les quelques secondes pour observer les modifications.
  • Utilisez banner $(ls) si vous êtes assis très loin de l’écran. (;

  • Si vous trouvez tout cela trop long à retenir, vous pouvez configurer un alias :

    Ouvrez ~/.bash_aliases avec un éditeur de texte et ajoutez-y quelque chose comme ceci:

    alias lsp="ls -ah --color=always | less -R"
    

    (Il s'agit d'un script exécuté à chaque démarrage d'un nouveau terminal virtuel. Vous devez y configurer tous vos alias permanents.)

    Vous pouvez maintenant taper lsp ou le nom de votre choix.

    Si vous voulez pouvoir passer d'autres arguments à votre alias, nous devons définir une fonction à la place:

    lsp(){ ls -ah --color=always "$@" | less -R; }
    

    Une fonction, ressemblant principalement à ceci: name(){ commands; }; peut accepter des arguments, $1, $2, $3 et ainsi de suite. $@ signifie "chaque argument, le cas échéant" .

    Vous pouvez maintenant exécuter quelque chose comme lsp *.py, lsp -C, etc. Nous insérons les arguments au moment où ils sont passés à ls. Nous aurions aussi pu insérer $ * pour moins, s'il s'agissait de la commande importante. Vous pouvez voir tous les arguments de ls en man ls (qui vaut la peine d'être lu).


*: La raison en est que chaque fois que vous effectuez une Pipe, il détecte un Terminal (en réalité l'autre programme) incapable d'afficher les couleurs. "--color = always" force ls à l'ignorer. Le commutateur -R permet de moins repeindre l'écran, en échappant les couleurs correctement.

53
Stefano Palazzo

Je ne sais pas s'il existe une commande ls pour la pagination. Cependant, vous pouvez utiliser un tube et less, comme ceci:

ls | less

Et utilisez q pour sortir.

3
Ragnar123

Essayez ls | less ou ls | more. Le second est proche de la version DOS.

1
FUZxxl