Quiero buscar todos los archivos con la extensión .sql en carpetas y subcarpetas (recursivas).
¿Cómo puedo hacer esto?
O...
find $directory_name -name \*.sql
Por ejemplo
find / -name \*.sql
O
find ~ \*.sql
(donde ~ equivale a / home / your_username /), o ...
find /usr/local/share/ \*.sql
Etcétera.
Ejecute esto en la línea de comando:
cd / && find | grep '\.sql$'
Cambie '/' al directorio que desea buscar.
El findcomando puede realizar la tarea sin grep (usando opciones adicionales), pero el uso anterior me parece más conveniente.
En orden, el comando anterior:
cd /)find)| grep '\.sql$')
findya tiene capacidades de filtroSé que esta es una publicación anterior, pero soy bastante nuevo en esto y he encontrado una manera fácil de encontrar todos los archivos de cierta extensión en un directorio y sus subdirectorios secundarios. Bueno, primero navegas hacia el y
parent Directoryluegofind . -name '*.sql'encontrarás todos los archivos con extensión .sql en los directorios y sus subdirectorios.En mi caso, quería eliminar todos los archivos .xml en el directorio y sus subdirectorios, así que lo que hice más es que agregué eliminar como aquí
find . -name '*.xml' | xargs rmEspero que esto ayude a alguien :)
fuente
findentiende el-deletecomando. No hay necesidad de involucrarserm. O puede usar el-execcomando para invocarlo directamente sin el desvío a través de una tubería yxargs.Si no está instalado, instálelo previamente con:
fuente
mlocate.dbinstancia actualizada que no esté configurada fuera de la caja en Ubuntu (Blieve). Además, ¿por qué no simplementelocate '/folder/path/*.sql'?locatetiene una configuración diferente de la expresión regular utilizadaegreplocatecoincide con expresiones globales como/folder/path/*.sql, no expresiones regulares.man locaterecibo-r, --regexp REGEXP - Search for a basic regexp REGEXPpor lo que supuse que era una expresión regular. De todos modos probé tu "expresión global" pero no funciona, lo siento--regexno se especifica, losPATTERNs pueden contener caracteres globulares". ( Fuente )