Estoy en Ubuntu y me gustaría encontrar todos los archivos en el directorio actual y los subdirectorios cuyo nombre contiene la cadena "John". Sé que greppuede coincidir con el contenido de los archivos, pero no tengo idea de cómo usarlo con los nombres de los archivos. Cualquier ayuda sería apreciada.
107

Respuestas:
Utilice el comando de búsqueda ,
fuente
#!/bin/bash if [ -z $1 ]; then echo "Error: Specify pattern for search"; else /usr/bin/find . -type f -name "*$1*"; file permitiría ejecutarloF search-stringcomo un acceso directo perfecto[ -z "$1" ]sería un poco mejor.if [ -z ]. Pensé que sería un error de sintaxis, pero funciona. Puedo simplificar parte de mi código de ahora en adelante.Ya se ha proporcionado una respuesta correcta, pero para que aprenda a ayudarse a sí mismo, pensé en incluir algo útil de otra manera; Si puede resumir lo que está tratando de lograr en una palabra, hay una excelente función de ayuda en Linux.
Lo que hace es enumerar todos los comandos que tienen su término de búsqueda en la descripción breve. Por lo general, es muy probable que encuentres lo que buscas. ;)
Esa salida a veces puede ser algo abrumadora, y recomendaría reducirla a los ejecutables, en lugar de a todas las páginas de manual disponibles, así:
o, si también desea buscar comandos que requieran niveles de privilegios más altos, como este:
fuente
El
findcomando llevará mucho tiempo porque analiza archivos reales en el sistema de archivos.La forma más rápida es usar el
locatecomando, que dará un resultado de inmediato:Si no se encuentra el comando, primero debe instalar el
mlocatepaquete y ejecutar elupdatedbcomando para preparar la base de datos de búsqueda por primera vez.Más detalles aquí: https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab
fuente
utilizar ack es simple. Sólo tipo
ack <string to be searched>fuente
Esta es una solución muy simple que usa el
treecomando en el directorio que desea buscar.-fmuestra la ruta completa del archivo y|se usa para canalizar la salida del árbolgreppara encontrar el archivo que contiene la cadenafilenameen el nombre.fuente