Respuestas:
Use find para eso:
find . -name "foo*"
findnecesita un punto de partida, y el .(punto) apunta al directorio actual.
find . foo*, foo*se expandiría Y LUEGO pasaría a buscar.
" "es muy necesario para la búsqueda recursiva.
find . -name "foo*" 2>/dev/null
La búsqueda de tuberías en grep suele ser más conveniente; le da todo el poder de las expresiones regulares para la coincidencia arbitraria de comodines.
Por ejemplo, para buscar todos los archivos con una cadena "foo" que no distingue mayúsculas de minúsculas en el nombre del archivo:
~$ find . -print | grep -i foo
findTambién tiene las -iname, -regexy -iregexbanderas para mayúsculas y minúsculas comodín, expresiones regulares, y sensible a las mayúsculas coincidencia de expresión regular, por lo que las tuberías a grepes innecesario.
findcomando que admite esas opciones. A veces se grepconvierte en la única opción.
find encontrará todos los archivos que coinciden con un patrón:
find . -name "*foo"
Sin embargo, si quieres una foto:
tree -P "*foo"
¡Espero que esto ayude!
brew install treepara usuarios de Mac OSX sin apt-getinstalar
find -L . -name "foo*"
En algunos casos, he necesitado el parámetro -L para manejar enlaces de directorios simbólicos. Por defecto, los enlaces simbólicos se ignoran. En esos casos, era bastante confuso ya que cambiaría el directorio a un subdirectorio y vería el archivo que coincidía con el patrón, pero find no devolvería el nombre del archivo. El uso de -L resuelve ese problema. Las opciones de enlace simbólico para buscar son -P -L -H
Si su shell admite una nueva opción global (puede habilitarse mediante :)shopt -s globstar , puede usar:
echo **/*foo*
para buscar archivos o carpetas de forma recursiva. Esto es compatible con Bash 4, zsh y shells similares.
Personalmente tengo esta función de shell definida:
f() { find . -name "*$1*"; }
Nota: La línea anterior se puede pegar directamente en el shell o agregarse al ~/.bashrcarchivo de su usuario .
Entonces puedo buscar cualquier archivo escribiendo:
f some_name
Alternativamente, puede usar una fdutilidad con una sintaxis simple, por ejemplo fd pattern.
shopt -s globstarcomando. Esto es compatible con Bash, zsh y shells similares.
bash-3.2$ shopt -s globstardabash: shopt: globstar: invalid shell option name
fdEn caso de que findsea demasiado lento, pruebe con la fdutilidad, una alternativa simple y rápida a la findescrita en Rust.
Sintaxis:
fd PATTERN
Manifestación:
Página de inicio: https://github.com/sharkdp/fd
asciicast2vectorse pueda usar.
find <directory_path> -type f -name "<wildcard-match>"
En el comodín puede proporcionar la cadena que desea que coincida, por ejemplo, * .c (para todos los archivos c)
Puedes usar:
# find . -type f -name 'text_for_search'
Si quieres usar REGX usa -iname
# find . -type f -iname 'text_for_search'
La forma predeterminada de buscar archivos recursivos, y disponible en la mayoría de los casos es
find . -name "filepattern"
Comienza el desplazamiento recursivo para el nombre de archivo o patrón desde el directorio actual en el que está ubicado. Con el comando find, puede usar comodines y varios modificadores, para ver la lista completa de opciones, escriba
man find
o si las páginas man no están disponibles en su sistema
find --help
Sin embargo, hay herramientas más modernas y más rápidas que las que se encuentran, que atraviesan todo su sistema de archivos e indexan sus archivos, una de esas herramientas comunes es localizar o descifrar / ubicar, debe consultar el manual de su sistema operativo sobre cómo instalarlo, y una vez que esté instalado necesita iniciar la base de datos, si el script de instalación no lo hace por usted, puede hacerlo manualmente escribiendo
sudo updatedb
Y, usarlo para buscar algún tipo de archivo en particular
locate filename
O, para buscar el nombre de archivo o el patrón desde el directorio actual, puede escribir:
pwd | xargs -n 1 -I {} locate "filepattern"
Examinará su base de datos de archivos e imprimirá rápidamente los nombres de ruta que coinciden con el patrón que ha escrito. Para ver la lista completa de las opciones de localizar, escriba:
locate --help oman locate
Además, puede configurar localizar para actualizar su base de datos en horas programadas a través del trabajo cron, por lo que muestra cron qué actualizaciones db a la 1 AM se vería así:
0 1 * * * updatedb
Estos trabajos cron deben ser configurados por root, ya que updatedb necesita privilegios de root para atravesar todo el sistema de archivos.
Me sorprende ver que localizar no se usa mucho cuando vamos de forma recursiva.
Primero haría una búsqueda de "$ PWD" para obtener la lista de archivos en la carpeta de interés actual, y luego ejecutaría greps en ellos como quisiera.
locate "$PWD" | grep -P <pattern>
Por supuesto, esto supone que la actualizaciónb se realiza y el índice se actualiza periódicamente. Esta es una forma mucho más rápida de encontrar archivos que ejecutar un hallazgo y pedirle que baje del árbol. Mencionando esto para completar. Nada en contra de usar find, si el árbol no es muy pesado.
locate "$PWD*.mp4" Sólo para recordar que usted puede ser capaz de saltar elgrep
El siguiente comando ayuda a buscar cualquier archivo
1) Independientemente del caso
2) Resultado Excluir carpetas sin permiso
3) Buscar desde la raíz o desde la ruta que desee. Cambiar / con la ruta que prefieras.
Sintaxis:
find -iname '' 2> & 1 | grep -v "Permiso denegado"
Ejemplo
find / -iname 'C * .xml' 2> & 1 | grep -v "Permiso denegado"
find / -iname '*C*.xml' 2>&1 | grep -v "Permission denied"
find / -iname '*C*.xml' 2>/dev/null
Si desea buscar un archivo especial con comodín, puede usar el siguiente código:
find . -type f -name "*.conf"
Supongamos que desea buscar todos los archivos .conf desde aquí:
.significa búsqueda iniciada desde aquí (lugar actual)
-typesignifica tipo de elemento de búsqueda que aquí es el archivo (f).
-namesignifica que desea buscar archivos con nombres * .conf .
Utilizar
find path/to/dir -name "*.ext1" -o -name "*.ext2"
Explicación
findhace recursividad.-osoportes para -or. Entonces, arriba significa buscar este comodín O este. Si solo tiene un patrón, entonces no necesita-o .