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