103 votes

Comment rechercher tous les fichiers commençant par le nom "ABC" dans un répertoire ?

Je dois rechercher des fichiers commençant par un nom particulier. Il peut y avoir plusieurs fichiers commençant par un motif particulier et je veux lister tous ces fichiers présents dans le répertoire.

108voto

Takkat Points 135194

Pour compléter les réponses existantes :

ls

L'utilitaire de liste de répertoire par défaut ls peut être utilisé en combinaison avec les caractères génériques du Shell . Pour rechercher tous les fichiers avec le motif 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

Notez que l'extension du fichier est également pertinente pour les résultats de la recherche.


tree

Dans le cas où nous avons besoin de lister les fichiers dans une arborescence de répertoires, nous pouvons également utiliser la commande suivante tree pour rechercher un motif comme :

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

Dans ce cas, tree prend lui-même en charge les caractères génériques.

60voto

devav2 Points 33862

Vous pouvez utiliser find pour rechercher des fichiers avec un motif

find . -type f -name "abc*" 

La commande ci-dessus recherchera le fichier qui commence par abc dans le répertoire de travail actuel.

-name 'abc' listera les fichiers qui correspondent exactement. Ex : abc

Vous pouvez également utiliser

 -iname
 -regex 

option avec find pour rechercher un nom de fichier à l'aide d'un modèle

9voto

Yamaho Points 4053

Il existe de nombreuses façons de le faire, en fonction de ce que vous voulez exactement faire avec eux. En général, si vous voulez simplement les lister, vous pouvez le faire dans un terminal en utilisant :

find | grep '^\./ABC'

... et remplaçant ABC avec votre texte.

Pour comprendre la commande, décomposons-la un peu :

  • find liste tous les fichiers sous le répertoire courant et ses sous-répertoires ; l'utiliser seul ne fera que lister tout ce qui s'y trouve. Notez que find produit chaque fichier ou répertoire commençant par ./ indiquant que leur chemin est relatif au répertoire courant. Il est important d'en être conscient car cela signifie que nous rechercherons les résultats commençant par ./ABC et pas seulement ABC .

  • Le caractère pipe | redirige la sortie d'une commande vers une autre, dans ce cas la sortie de find est redirigé vers grep . C'est ce qu'on appelle la tuyauterie.

  • grep prend la sortie et la filtre en utilisant le motif donné, ^\./ABC .

    • Remarquez que le motif est cité entre guillemets simples ' ' pour empêcher le Shell d'interpréter les caractères spéciaux qu'il contient.
  • Maintenant, le motif lui-même est écrit dans une syntaxe particulière appelée expression régulière ou regex pour faire court. Regex est un outil de recherche extrêmement puissant si vous le maîtrisez, et il existe des sites tels que este qui vous l'apprendront plus en profondeur, mais notez que grep n'est pas un moteur de regex à part entière et vous ne pouvez pas tout faire avec lui.

  • Pour notre objectif :

    • ^ dans l'expression rationnelle correspond au début de la chaîne de caractères ; cela l'empêche de correspondre au motif s'il n'apparaît pas au début du nom du fichier.

    • . dans les regex a également une signification spéciale : il signifie "correspondre à n'importe quel caractère unique ici". Si vous voulez l'utiliser comme un point littéral, vous devez l'"échapper" en utilisant une barre oblique inverse. \ avant elle. (Oui, faire correspondre n'importe quel caractère serait inoffensif dans notre cas, mais je l'ai fait par souci d'exhaustivité).

4voto

remjg Points 3323

Vous pouvez rechercher un motif particulier à l'aide du gestionnaire de fichiers Nautilus et des expressions régulières.

Pour ce faire, cliquez sur Sélectionner les éléments qui correspondent dans le menu Gear comme ci-dessous (vous pouvez également appuyer sur Ctrl + s ).

enter image description here

Ensuite, il suffit de taper le expression régulière ABC* et valider.

enter image description here

Chaque fichier dont le nom correspond à votre modèle sera automatiquement sélectionné.

enter image description here

J'utilise Nautilus 3.6.* à partir de GNOME3 PPA sur Ubuntu 12.10 (Quantal).

3voto

Tomáš Tibenský Points 139

Vous pouvez utiliser GREP, je pense que c'est la solution la plus simple, probablement aussi ajouter d'autres paramètres grep pour rendre la correspondance plus précise

tree | grep ABC

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X