Come attivare l'impaginazione per il comando ls?


34

Qual è l'opzione equivalente per il lscomando di attivare l'impaginazione come in DOS dir /pfa?

Risposte:


54

Non esiste un equivalente semplice in lssé, ma esiste l' lessutilità, che formatterà l'output di qualsiasi comando come pagine separate, scorrevoli per riga o pagina:

ls -C | less

Dove -Cattiva la visualizzazione delle colonne. Uso lahcome argomenti ( ls -lah) per ottenere un l ine tramite display linea con un visualizzati i file LL (includere quelli nascosti), e h Uman filesizes leggibili.

  • Per visualizzare correttamente i colori , devi aggiungere l' --color=alwaysargomento lse l' -Rargomento su meno *:

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

    testo alternativo
    questo mostra 'ls -ah --color = always | meno -R '

Al contrario more, lessconsente di scorrere l'output. È anche un po 'più veloce per elenchi molto grandi.

La pipe funziona così:

Ogni programma ha input e output, una pipe reindirizza l'output di un programma (ls) all'input di un altro programma (meno). E meno si aspetta semplicemente input che poi formatta.

  • Un equivalente dos più vecchio stile sarebbe pg:

    ls | pg
    

Puoi anche

  • Utilizzare ls | heado ls | tailper visualizzare solo la prima o l'ultima parte dell'output
  • Utilizzare watch "ls"per mantenere aperto il display, aggiornandolo ogni pochi secondi per vedere le modifiche
  • Usa banner $(ls)se sei seduto molto lontano dallo schermo. (;

  • Se trovi tutto questo troppo a lungo da ricordare, puoi impostare un alias per questo:

    Apri ~/.bash_aliasescon un editor di testo e aggiungi qualcosa di simile a questo:

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

    (questo è uno script che viene eseguito ogni volta che viene avviato un nuovo terminale virtuale, è necessario impostare lì tutti i tuoi alias permanenti)

    Ora puoi semplicemente digitare lspo qualsiasi nome tu scelga.

    Se vuoi essere in grado di passare ulteriori argomenti al tuo alias, dobbiamo invece definire una funzione :

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

    Una funzione, principalmente simile a questo: name(){ commands; };può accettare argomenti, $1, $2, $3e così via. $@significa "ogni argomento, se presente" .

    È ora possibile eseguire qualcosa di simile lsp *.py, lsp -Ce così via. Inseriamo gli argomenti nel punto in cui vengono passati a ls. Avremmo anche potuto inserire $ * per meno, se fosse il comando importante. Puoi vedere tutti gli argomenti di ls su man ls(vale la pena leggerlo).


*: Il motivo di ciò è che ogni volta che si pipe qualcosa, rileva un Terminale (in realtà l'altro programma) non in grado di visualizzare il colore. "--color = always" forza ls a ignorarlo. L'interruttore -R rende meno ridipingere lo schermo, sfuggendo correttamente ai colori .


grazie ottima risposta, mi è venuta in mente esattamente la parte con l'alias quando ho visto la lunga linea di comando. l'unico svantaggio creando l'alias è che l'uso di un filtro jolly come * .pdf non è possibile? esiste forse anche una soluzione per questo?
NES,

Tutto è possibile ;-) Ho aggiunto un po 'di argomenti, in qualche modo non ci avevo pensato prima.
Stefano Palazzo

2
hai dato più del previsto :) grazie per la risposta dettagliata. PS, sai se ci sono differenze tra bash e fish che in qualche modo impediscono a questo argomento alias di passare il metodo di lavoro nei pesci? ho ottenuto l'alias senza l'opzione argomento per lavorare qui.
NES,

1
Ok, qui askubuntu.com/questions/19728/… inizia la nuova domanda, grazie ancora per le risposte utili finora.
NES,

1
$*e $@fare esattamente la stessa cosa. Si espandono a $1 $2 $3 .... Le virgolette, tuttavia, si "$@"espandono in "$1" "$2" "$3" ...while si "$*"espande in "$1 $2 $3 ..."(ovvero, tutti gli argomenti in una stringa, utilizzando il primo carattere di IFScome separatore). mywiki.wooledge.org/BashGuide/Parameters
geirha,

3

Non sono sicuro se esiste un comando ls per l'impaginazione. Tuttavia, è possibile utilizzare una pipe e less, in questo modo:

ls | less

E usa q per uscire.


1

Prova ls | lesso ls | more. Il secondo è vicino alla versione DOS.


1
C'è forse un altro metodo? perché lo svantaggio è per me che la colorazione della shell non è attiva quando si usa una pipe?
NES,

2
Provals --color=always -C | less -R
FUZxxl,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.