Accéder au contenu France-Français
Accueil HP.com France Produits et Services Support et Pilotes Espaces Comment Acheter
» Contacter HP
Plus d'options
Accueil HP.com France
Utilisation d'HP-UX : Ordinateurs HP 9000 > Chapitre 2 Utilisation des fichiers et des répertoires

Recherche de fichiers à l’aide de find

» 

Documentation technique

Manuel complet en PDF
» Commentaires
Début du contenu

 » Table des matières

 » Glossaire

 » Index

Vous pouvez utiliser la commande find pour rechercher dans un répertoire et ses sous-répertoires les fichiers répondant à certains critères. Vous pouvez ensuite exécuter une commande sur tous les fichiers repérés.

Recherche de fichiers dont le nom concorde avec une chaîne de caractères donnée

Même si la syntaxe de la commande find peut sembler complexe, cette commande peut vous aider à utiliser HP-UX de façon plus productive. C’est une commande puissante et souple. Toutefois, son exécution peut être lente, surtout si la recherche se déroule dans plusieurs répertoires.

Supposons que vous vouliez lister tous les fichiers dont le nom commence par un « d » et qui sont contenus dans le répertoire courant et ses sous-répertoires. Entrez alors :

find(1)

$ find . -name ’d*’

Le point (.) indique que la recherche se fait dans le répertoire courant et ses sous-répertoires. L’option -name suivie d’un nom de fichier ou d’un nom de fichier avec des caractères génériques (en l’occurrence d*) précise que la recherche doit porter sur tous les noms de fichiers qui commencent par un d.

Remarquez que d* est placé entre apostrophes ’d*’. Si vous utilisez un nom de fichier avec des caractères génériques dans la commande find, vous devez le placer entre apostrophes pour que le shell l’interprète correctement.

Recherche de fichiers plus récents qu’un fichier donné

Supposons que vous vouliez lister tous les fichiers qui ont été modifiés après la date de la dernière modification d’un fichier donné. Pour afficher tous les fichiers plus récents que monfich dans le répertoire /home/pierre et ses sous-répertoires, entrez :

$ find /home/pierre -newer monfich

On peut interpréter cette commande comme suit : trouver dans le répertoire /home/pierre et ses sous-répertoires tous les fichiers qui ont été modifiés après monfich et afficher le résultat à l’écran. (Pour connaître la date et l’heure de la dernière modification d’un fichier, utilisez la commande ll.)

Exécution de commandes sur les fichiers

Vous pouvez exécuter des commandes sur les fichiers repérés avec la commande find. Supposons que vous vouliez détruire tous les fichiers ayant le suffixe .tmp, contenus dans le répertoire courant et ses sous-répertoires. Entrez :

$ find . -name ’*.tmp’ -exec rm {} \;

Dans cet exemple, tous les fichiers contenus dans le répertoire courant et ses sous-répertoires dont le suffixe est .tmp sont affichés, puis supprimés. L’option -exec entraîne l’exécution de la commande qui suit (rm). Les accolades { } représentent les fichiers trouvés par la commande find. Le point-virgule qui termine la chaîne de commandes est précédé d’une barre oblique inverse (\;) afin que le shell l’interprète correctement.

Utilisation d’opérateurs logiques

La syntaxe de find comprend les opérateurs logiques booléens NON, ET et OU.

Pour repérer les fichiers qui ne correspondent pas à une expression spécifique, utilisez l’opérateur logique NON, le point d’exclamation (!). Après cet opérateur, vous devez utiliser des options pour définir les attributs de fichier comme un nom de fichier. Ensuite, les fichiers qui ne possèdent pas les attributs spécifiés sont repérés.

Par exemple, pour repérer tous les fichiers de /tmp qui n’appartiennent pas à pierre, utilisez cette commande :

$ find /tmp \( ! -user pierre \)

La barre oblique inverse (\) permet de ne pas tenir compte des parenthèses de façon qu’elles ne soient pas interprétées comme des caractères spéciaux par le shell.

Pour repérer les fichiers qui possèdent deux attributs distincts, utilisez l’opérateur logique ET, expression -a expression. Par exemple, pour repérer tous les répertoires de / qui appartiennent à pierre, utilisez cette commande :

$ find / \( -type d -a -user pierre \)

Pour repérer les fichiers qui possèdent l’un des attributs ou les deux, utilisez l’opérateur logique OU, expression -o expression Par exemple, pour supprimer tous les fichiers qui se terminent par a.out ou nommés *.o auxquels vous n’avez pas eu accès pendant la semaine, utilisez cette commande :

$ find / \( -name a.out -o -name ’*.o’ \) -atime +7 -exec rm {} \;

Pour de plus amples informations

Pour plus de détails sur l’utilisation de la commande find, reportez-vous à la page de manuel find(1).

Version imprimable
Respect de la vie privée L'utilisation de ce site implique que vous en acceptez les conditions
© Hewlett-Packard Development Company, L.P.