Cómo encontrar todos los archivos con la misma extensión dentro de un directorio

63

Soy principiante en Linux y quiero buscar todos los .confarchivos /etc/.

Lo intenté grep -r *.conf /etc, pero el resultado no es correcto.

¿Qué estoy haciendo mal?

Adrian George
fuente

Respuestas:

96

Simplemente presione Ctrl+ Alt+ Ten su teclado para abrir Terminal. Cuando se abra, ejecute el siguiente comando:

find . -type f -name "*.txt"

Esto enumerará todos los archivos con la extensión .txt.

Al .principio denota el directorio actual. findbusca recursivamente en todos los directorios debajo de la ruta dada. Si desea que la búsqueda comience en otro lugar que no sea el directorio de trabajo actual, especifique la ruta, por ejemplo:

find /etc -type f -name "*.conf"

Esto busca en el /etcdirectorio y en todos sus subdirectorios archivos regulares con la .confextensión.

Mitch
fuente
1
Funciona. ¿Hay alguna alternativa para este comando?
Adrian George
1
Puedes echar un vistazo a Localizar .
Mitch
@AdrianGeorge findes tan ampliamente utilizado, tan bien documentado, y tiene tantas publicaciones de StackOverflow / Exchange al respecto que sería más difícil encontrar algo más fácil para trabajar. Casi cualquier cosa que quieras hacer se ha escrito en línea en alguna parte.
BallpointBen
6

Yo personalmente lo usaría find, pero también puedes pensar en estas cosas:

shopt -s globstar
ls /etc/{,**/}*.conf

Y puede usar localizar y es rápido pero no confiable.

locate '/etc/**.conf'
Oli
fuente
¿Por qué no es locateconfiable?
Giraldi
1
@Giraldi locateconfía en la base de datos mlocate que se actualizó recientemente para ser precisa. Por defecto, solo está programado para actualizarse una vez al día (aunque puede forzarlo manualmente con updatedb).
Oli
@Oli no es cierto en Mac, ¿verdad? creo que mac os mantiene mlocate actualizado
d8aninja
6

grepbusca el contenido de los archivos, no los nombres de los archivos.

Para buscar todos los .confarchivos /etc/, querrás encontrar:

find /etc -name "*.conf"
usuario184890
fuente