Estoy tratando de obtener todos los archivos por máscara en algún directorio sin buscar recursivamente en los subdirectorios. No hay opción -maxdepth 0 en AIX para eso.
Escuché sobre -prune , pero todavía no puedo entender cómo funciona.
Supongo que el comando debería parecerse a
find dir \( ! -name dir -prune -type f \) -a -name filemask
pero no funciona.
¿Podría escribirme un comando correcto y explicarme cómo funcionará?
UPD
Parece comando
find dir ! -path dir -prune
imprime todos los archivos y catálogos en dir , pero no archivos y catálogos en dir/* , para que pueda usarlo en mi caso.
Respuesta aceptada:
Querrás:
find dir/. ! -name . -prune -type f -name filemask
O:
find dir ! -path dir -prune -type f -name filemask
Para encontrar los archivos regulares llamados filemask en dir sin buscar en subdirectorios de dir .
Con find dir ! -name dir -prune , tendría problemas si hubiera un dir/dir directorio.
El dir/. el enfoque soluciona eso porque find no encontrará ningún otro archivo llamado . que ese dir/. archivo pasado como argumento.
La -path El enfoque lo soluciona mirando la ruta del archivo de los archivos (en lugar de solo el nombre), -path dir coincidirá con dir , pero no en dir/dir (así que dir será el único directorio que no se eliminará). -path aunque es posible que no esté disponible en versiones anteriores de AIX.
De manera más general, para el equivalente estándar de -maxdepth n de GNU , consulte ¿Limitar la búsqueda de POSIX a una profundidad específica?