Noté recientemente que las especificaciones POSIX para find no incluya el -maxdepth principal.
Para aquellos que no están familiarizados con él, el propósito de -maxdepth principal es restringir cuántos niveles de profundidad find descenderá. -maxdepth 0 da como resultado solo argumentos de la línea de comandos que se están procesando; -maxdepth 1 solo manejaría los resultados directamente dentro de los argumentos de la línea de comandos, etc.
¿Cómo puedo obtener el comportamiento equivalente al no POSIX -maxdepth? primario usando solo opciones y herramientas especificadas por POSIX?
(Nota:por supuesto que puedo obtener el equivalente de -maxdepth 0 simplemente usando -prune como el primer operando, pero eso no se extiende a otras profundidades).
Respuesta aceptada:
Puedes usar -path para que coincida con una profundidad dada y podar allí. Por ejemplo
find . -path '*/*/*' -prune -o -type d -print
sería profundidad máxima 1, como * coincide con el . , */* coincide con ./dir1 y */*/* coincide con ./dir1/dir2 que se poda. Si usa un directorio de inicio absoluto, debe agregar un / inicial a la -path también.