Dans Emacs, comment puis-je rechercher un nom de fichier dans un répertoire et tous ses sous-répertoires ?
Réponses
Trop de publicités?Vous pouvez utiliser M-x find-name-dired
. Il vous demandera un répertoire et un motif joker, vous pouvez donc entrer quelque chose comme *thing*
et avoir tous les fichiers avec "thing" dans le nom listés dans un tampon direct.
Plus d'informations ici : http://emacswiki.org/emacs/RecursiveGrep (ainsi qu'un extrait qui vous permet de ne pas écrire les étoiles).
Dans dired, vous pouvez lister tous les sous-répertoires du répertoire visité en vous déplaçant sur la première ligne et en appuyant sur C-u l
et en ajoutant le R
commutateur . Vous pouvez ensuite rechercher le nom du fichier dans la mémoire tampon, ou marquer les fichiers en fonction d'une expression rationnelle à l'aide de la commande % m
.
Sous Linux, ou Windows avec les utilitaires Cygwin, ou tout autre système de type Unix avec GNU find, une astuce rapide est la suivante M-x grep-find
et modifiez la ligne de commande de manière à ce qu'elle contienne uniquement les éléments suivants find
avec un format approprié :
find -type f -name '*.foo' -printf '%p:0:\n'
Sur n'importe quel système disposant d'outils unix, vous pouvez exécuter la commande find
avec M-! find
. Dans le tampon de sortie, vous pouvez utiliser M-x ffap
pour visiter le fichier choisi. Vous pouvez également mettre en place dired-x de sorte que C-u C-x C-f
peut être utilisé à la place de M-x ffap
.