Tengo un orden específico de archivos que quiero enumerar si existen; alrededor de 40 archivos. Algún tipo de precedencia. Así que probé:
ls -1d /opt/foo/lib.jar /opt/bar/lib.jar
Esperaba que esto incluyera /opt/foo/lib.jar
primero si ambos existen.
Pero en realidad imprime la bar
primero y el foo
después de eso.
¿Hay alguna forma de hacer ls
enumerar las entradas en el orden dado en los parámetros?
O algún enfoque alternativo con find
?
Respuesta aceptada:
Con GNU ls
, podrías probar el -U
opción:
-U
:no ordenar; lista de entradas en orden de directorio
(aunque aquí no enumeramos el contenido de los directorios, por lo que la parte que importa es no ordenar ).
$ ls -1dU /opt/foo/lib.jar /opt/bar/lib.jar
/opt/foo/lib.jar
/opt/bar/lib.jar
Ligeramente más portátil (funciona con GNU y FreeBSD ls
, pero no con ls
tradicional implementaciones y tampoco es POSIX), puede usar ls -1df
:
$ ls -1df /opt/foo/lib.jar /opt/bar/lib.jar
/opt/foo/lib.jar
/opt/bar/lib.jar