Respuestas:
Use find para eso:
find . -name "foo*"
find
necesita 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
find
También tiene las -iname
, -regex
y -iregex
banderas 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 grep
es innecesario.
find
comando que admite esas opciones. A veces se grep
convierte 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 tree
para usuarios de Mac OSX sin apt-get
instalar
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 ~/.bashrc
archivo de su usuario .
Entonces puedo buscar cualquier archivo escribiendo:
f some_name
Alternativamente, puede usar una fd
utilidad con una sintaxis simple, por ejemplo fd pattern
.
shopt -s globstar
comando. Esto es compatible con Bash, zsh y shells similares.
bash-3.2$ shopt -s globstar
dabash: shopt: globstar: invalid shell option name
fd
En caso de que find
sea demasiado lento, pruebe con la fd
utilidad, una alternativa simple y rápida a la find
escrita en Rust.
Sintaxis:
fd PATTERN
Manifestación:
Página de inicio: https://github.com/sharkdp/fd
asciicast2vector
se 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)
-type
significa tipo de elemento de búsqueda que aquí es el archivo (f).
-name
significa que desea buscar archivos con nombres * .conf .
Utilizar
find path/to/dir -name "*.ext1" -o -name "*.ext2"
Explicación
find
hace recursividad.-o
soportes para -or
. Entonces, arriba significa buscar este comodín O este. Si solo tiene un patrón, entonces no necesita-o
.