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