Mám specifické pořadí souborů, které chci vypsat, pokud existují; asi 40 souborů. Nějaký druh přednosti. Tak jsem to zkusil:
ls -1d /opt/foo/lib.jar /opt/bar/lib.jar
Očekával jsem, že to bude seznam /opt/foo/lib.jar nejprve, pokud existují oba.
Ale ve skutečnosti vytiskne bar první a foo poté.
Existuje nějaký způsob, jak vytvořit ls seznam položek v pořadí uvedeném v parametrech?
Nebo nějaký alternativní přístup pomocí find ?
Přijatá odpověď:
S GNU ls , můžete zkusit -U možnost:
-U:neřadit; seznam položek v adresářovém pořadí
(i když zde neuvádíme obsah adresářů, takže důležitá část je neřadit ).
$ ls -1dU /opt/foo/lib.jar /opt/bar/lib.jar
/opt/foo/lib.jar
/opt/bar/lib.jar
Mírně přenosnější (funguje s GNU a FreeBSD ls , ale ne s tradičním ls implementací a není ani POSIX), můžete použít ls -1df :
$ ls -1df /opt/foo/lib.jar /opt/bar/lib.jar
/opt/foo/lib.jar
/opt/bar/lib.jar