Comment trouver tous les fichiers avec la même extension dans un répertoire


63

Je suis débutant sous Linux et je souhaite rechercher tous les .conffichiers /etc/.

J'ai essayé grep -r *.conf /etc, mais le résultat n'est pas bon.

Qu'est-ce que je fais mal?

Réponses:


96

Appuyez simplement sur Ctrl+ Alt+ Tsur votre clavier pour ouvrir Terminal. Quand il s'ouvre, lancez la commande ci-dessous:

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

Cela listera tous les fichiers avec l'extension .txt.

Au .début désigne le répertoire en cours. findrecherche récursivement dans tous les répertoires situés sous le chemin indiqué. Si vous souhaitez que la recherche commence ailleurs que dans le répertoire de travail actuel, indiquez le chemin, par exemple:

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

Cette recherche dans le /etcrépertoire et tous ses sous-répertoires pour les fichiers normaux avec l' .confextension.


1
Ça marche. Existe-t-il des alternatives pour cette commande?
Adrian George

1
Vous pouvez jeter un oeil à Locate .
Mitch

@AdrianGeorge findest si largement utilisé, si bien documenté et si bien dans ses publications sur StackOverflow / Exchange qu'il serait plus difficile de trouver quelque chose de plus facile à utiliser. À peu près tout ce que vous voudriez faire a été écrit quelque part en ligne.
BallpointBen

6

Personnellement, je l'utilise find, mais vous pouvez aussi utiliser Glob pour ces choses:

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

Et vous pouvez utiliser une localisation rapide et rapide, mais pas fiable.

locate '/etc/**.conf'

Pourquoi n'est pas locatefiable?
Giraldi

1
@Giraldi locates'appuie sur la base de données mlocate pour avoir été mise à jour récemment pour être précise. Par défaut, il est uniquement prévu de mettre à jour une fois par jour (bien que vous puissiez le forcer manuellement avec updatedb).
Oli

@ Oli pas vrai sur les macs cependant, non? pense que mac os garde mlocate à jour
d8aninja

6

greprecherche le contenu des fichiers, pas les noms de fichiers.

Pour trouver tous les .conffichiers dans /etc/vous voudrez trouver:

find /etc -name "*.conf"

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.