¿Hay alguna opción de amplitud primero / profundidad primero en la utilidad 'find' de Linux?
12
No hay nada incorporado para encontrar, incluso GNU find. Puede postprocesar la salida de find
ordenar por número de barras, por ejemplo con Perl:
find ... | perl -e 'print sort {$a=~s!/!/! <=> $b=~s!/!/!} <>'
<>
es la lista de todas las líneas de entrada;$a =~ s!/!/!g
es el número de barras inclinadas $a
que usamos como criterio de clasificación.Si puedes usar zsh:
echo **/*(oe\''REPLY=${REPLY//[^\/]}'\')
**/*
enumera todos los archivos en el directorio y subdirectorios actuales.oe
controla el orden en el que se devuelven las coincidencias: se ordenan por el valor de REPLY
después de ejecutar el código aquí entre comillas para cada coincidencia que REPLY
se establece inicialmente en la ruta coincidente.$REPLY
para eliminar todo excepto las barras. Entonces, el resultado consiste en todo en la profundidad 1 (resultado vacío $REPLY
), luego todo en la profundidad 2 ( $REPLY
termina siendo /
), profundidad 3 ( //
), etc.
No
Vaya a esta pregunta sobre SO para soluciones alternativas.
fuente
Mi sensación es que puedes. Involucra grep y tal y un bucle, pero creo que funciona muy bien, específicamente para su caso sobre el hallazgo que no necesita completarse.
Requiere más recursos debido a:
Esto es bueno porque:
También puede ajustarlo en una línea bastante (?) Fácilmente:
Pero prefiero pequeños guiones sobre escribir ...
fuente