GNU/Linux >> Linux Esercitazione >  >> Linux

Come impedire a `ls` di ordinare l'output?

Ho un ordine specifico di file che voglio elencare se esistono; circa 40 file. Una specie di precedenza. Quindi ho provato:

ls -1d         /opt/foo/lib.jar /opt/bar/lib.jar

Mi aspettavo che questo elencasse /opt/foo/lib.jar prima se esistono entrambi.
Ma in realtà stampa la bar prima e il foo dopo.

C'è un modo per creare ls elencare le voci nell'ordine indicato nei parametri?
O qualche approccio alternativo con find ?

Risposta accettata:

Con GNU ls , potresti provare -U opzione:

-U :non ordinare; elenca le voci in ordine di directory

(anche se qui non stiamo elencando il contenuto delle directory, quindi la parte che conta è non ordinare ).

$ ls -1dU /opt/foo/lib.jar /opt/bar/lib.jar
/opt/foo/lib.jar
/opt/bar/lib.jar

Leggermente più portabile (funziona con GNU e FreeBSD ls , ma non con i tradizionali ls implementazioni e non è neanche POSIX), puoi usare ls -1df :

$ ls -1df /opt/foo/lib.jar /opt/bar/lib.jar
/opt/foo/lib.jar
/opt/bar/lib.jar

Linux
  1. Come cercare nel Web da terminale su Linux

  2. Come assegnare l'output di un comando a una variabile di shell?

  3. Come fare in modo che "data" produca l'ora da un fuso orario diverso?

  4. Come evidenziare una parola nell'output di "cat"??

  5. Come rilevare se la shell è controllata da Ssh?

Come dire a quale versione di Os X mi trovo dalla riga di comando?

Linux:la colonna dei buffer nell'output di Free?

Come impostare una variabile uguale all'output di un comando in Grub2?

Come recuperare solo la linea necessaria dall'uscita del terminale?

Come estrarre il tempo di durata dall'output di ffmpeg?

Come reindirizzare l'output da grep a cp?