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