Comment activer la pagination pour la commande ls?

33

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

    
posée NES 02.01.2011 - 14:25
la source

3 réponses

52

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: %pr_e%

-C déclenche l'affichage de la colonne. Utilisez lah comme arguments ( ls -lah ) pour obtenir un affichage l ine par ligne avec a tous les fichiers affichés (y compris ceux qui sont cachés) et h. La taille des fichiers lisibles par uman.

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

    .

    %pr_e%


    ceciindique'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 de dos plus ancien serait pg :

    ls -C | less

Vous pouvez aussi

  • Utilisez ls | head ou ls | tail pour afficher uniquement la première ou la dernière partie du résultat
  • 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 pour cela:

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

    ls -C --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 souhaitez pouvoir passer d'autres arguments à votre alias, nous devons définir une fonction à la place:

    ls | pg
    

    Une fonction ressemblant principalement à ceci: name(){ commands; }; peut accepter des arguments, $1 , $2 , $3 , etc. [email protected] 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, si c'était la commande importante. Vous pouvez voir tous les arguments de ls à l'adresse man ls (qui mérite d'être lue).

*: La raison en est que, chaque fois que vous effectuez une opération Tuyau, 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 moins de repeindre l’écran, respectant correctement les couleurs .

    
réponse donnée Stefano Palazzo 02.01.2011 - 14:42
la source
3

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

ls | less

Et utilisez q pour sortir.

    
réponse donnée Ragnar123 02.01.2011 - 14:29
la source
1

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

    
réponse donnée FUZxxl 02.01.2011 - 14:28
la source

Lire d'autres questions sur les étiquettes