Saltar al contenido

¿Cómo buscar todos los archivos que comienzan con el nombre “ABC” en un directorio?

Solución:

Para completar las respuestas existentes:

ls

La utilidad de lista de directorios predeterminada ls se puede utilizar en combinación con los comodines del shell. Para buscar todos los archivos con patrón abc:

ls -d abc*   # list all files starting with abc---
ls -d *abc*  # list all files containing --abc--
ls -d *abc   # list all files ending with --abc

Tenga en cuenta que la extensión del archivo también es relevante para los resultados de la búsqueda.


tree

En caso de que necesitemos listar archivos en un árbol de directorios, también podemos emitir tree para buscar un patrón dado como:

tree -P 'abc*'  # list directory tree of file starting with abc---
tree -l 'def*'  # exclude files starting with def---

En este caso, tree en sí mismo admite comodines.

Puedes usar find comando para buscar archivos con patrón

find . -type f -name "abc*" 

El comando anterior buscará el archivo que comienza con abc en el directorio de trabajo actual.

-name 'abc' enumerará los archivos que coinciden exactamente. Por ejemplo: abc

También puedes usar

 -iname
 -regex 

opción con find comando para buscar el nombre del archivo usando un patrón

Hay muchas formas de hacerlo, dependiendo exactamente de lo que quieras hacer con ellas. Generalmente, si solo desea enumerarlos, puede hacerlo en una terminal usando:

find | grep '^./ABC'

… y reemplazando ABC con tu texto.

Para entender el comando, desglosémoslo un poco:

  • find enumera todos los archivos del directorio actual y sus subdirectorios; usarlo solo mostrará todo lo que hay allí. Tenga en cuenta que find genera cada archivo o directorio que comienza con ./, lo que indica que su ruta es relativa al directorio actual. Ser consciente de esto es importante porque significa que buscaremos resultados que comiencen con ./ABC y no solo ABC.

  • El personaje de la pipa | redirige la salida de un comando a otro, en este caso la salida de find es redirigido a grep. A esto se le llama tubería.

  • grep toma la salida y la filtra usando el patrón dado, ^./ABC.

    • Tenga en cuenta que el patrón se cita con comillas simples ' ' para evitar que el shell interprete los caracteres especiales que contiene.
  • Ahora el patrón en sí está escrito en una sintaxis particular llamada expresión regular, o regex para abreviar. Regex es una herramienta de búsqueda extremadamente poderosa si la domina, y hay sitios como este que le enseñan al respecto con más profundidad, pero tenga en cuenta que grep no es un motor de expresiones regulares completo y no puede hacer todo con él.

  • Para nuestro propósito:

    • ^ en regex coincide con el comienzo de la cadena; esto evita que coincida con el patrón si no aparece al principio del nombre del archivo.

    • . en regex también tiene un significado especial: significa “coincidir con cualquier carácter aquí”. En caso de que quieras usarlo como un punto literal, tendrás que “escapar” usando una barra invertida. antes de eso. (Sí, coincidir con cualquier personaje sería inofensivo en nuestro caso, pero lo hice por completo).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *