Remarque : Cet article a été initialement publié en 2013. Certaines étapes, commandes ou versions de logiciels peuvent avoir changé. Consultez la documentation actuelle des Man Pages pour les informations les plus récentes.
Dans ce guide étape par étape, vous apprendrez à rechercher un fichier sous Ubuntu avec des critères complexes (ou non).
Comment rechercher un fichier sous Ubuntu avec des critères complexes (ou non)
Parfois vous devez trouver un fichier et tout ce que vous connaissez est l’extension ou le début du nom du fichier. Une recherche puissante et flexible pour chercher dans tous les sous-répertoires les fichiers correspondant à un critère est importante. Ubuntu est fourni avec une telle commande qui vous permet soit de rechercher un nom de fichier exact, soit d’utiliser un caractère générique pour spécifier un critère. Nous ne couvrirons que les bases, mais sachez que la commande find dispose de plus d’options pour spécifier des critères plus précis si vous le souhaitez.
Les utilisateurs Windows trouveront que la commande find est celle qui ressemble le plus à la commande dir (que je continue d’essayer d’utiliser même si je ne suis pas sur un Windows Server ici… lol).
Voici la syntaxe : find
find / -type f -iname "MonFichier.Ext" est utilisé lorsque vous connaissez le nom exact. Remplacez MonFichier.Ext par votre nom de fichier.
find / -type f -iname "MonFich*" si vous souhaitez faire correspondre plus de fichiers avec un caractère générique.
Évitez l’option -type si vous souhaitez rechercher des répertoires, etc.
Voici quelques exemples pour vous aider à utiliser find dans des scénarios courants :
Scénarios basiques :
I. Trouver tous les fichiers Zip dans un répertoire
find /home -name '*.zip'
II. Trouver tous les fichiers MP3 et AAC dans un répertoire
find /home/MyMusic -name '*.mp3' -o -name '*.aac'
III. Trouver tous les fichiers MP3 et AAC dans un répertoire avec une recherche insensible à la casse
find /home/MyMusic -iname '*.Mp3' -o -iname '*.aAc'
Scénarios avec critères combinés :
IV. Trouver tous les films qui utilisent plus de 500 Mo d’espace
find /home/ -iname '*.avi' -o -iname '*.mpeg' -a -size +500M
V. Trouver toutes les sauvegardes volumineuses effectuées au cours des 2 dernières semaines
find /home/ -iname '*.zip' -o -iname '*.bak' -a -size +300M -mtime -14
Rediriger la sortie pour agir sur les résultats
Dans les exemples suivants, veuillez noter ce qui suit :
- ’{}’ correspond au fichier trouvé
- ’ ;’ termine l’instruction exec. Notez qu’il y a un espace avant le tiret.
VI. Trouver tous les répertoires et définir leurs permissions à 755
find /usr/share/MyWPSite/ -type d -exec chmod 755 {} \;
VII. Trouver tous les fichiers et définir leurs permissions à 644
find /usr/share/MyWPSite/ -type f -exec chmod 644 {} \;
VIII. Trouver toutes les sauvegardes volumineuses (supérieures à 300 Mo) de plus de 14 jours et les déplacer vers un nouveau dossier
find /home/ -iname '*.zip' -o -iname '*.bak' -a -size +300M -mtime +14 -exec mv '{}' /my/archive/backups/ \;
Voici une copie de la page man pour find :
FIND(1) FIND(1)
NOM
find - rechercher des fichiers dans une hiérarchie de répertoires
SYNOPSIS
find
DESCRIPTION
Cette page de manuel documente la version GNU de find. GNU find parcourt
l'arborescence de répertoires enracinée à chaque nom de fichier donné en évaluant
l'expression donnée de gauche à droite, selon les règles de précédence
(voir la section OPÉRATEURS), jusqu'à ce que le résultat soit connu (le côté
gauche est faux pour les opérations et, vrai pour ou), moment auquel
find passe au nom de fichier suivant.
Si vous utilisez find dans un environnement où la sécurité est importante
(par exemple si vous l'utilisez pour parcourir des répertoires accessibles en écriture
par d'autres utilisateurs), vous devriez lire le chapitre "Security Considerations"
de la documentation findutils, qui s'appelle Finding Files et est fourni
avec findutils. Ce document inclut beaucoup plus de détails et
de discussion que cette page de manuel, vous pourriez donc le trouver comme
une source d'information plus utile.
Résumé
Vous avez appris avec succès à rechercher un fichier sous Ubuntu avec des critères complexes (ou non). Si vous rencontrez des problèmes, vérifiez les prérequis et assurez-vous que votre environnement Man Pages est correctement configuré.