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.