logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:systeme:find [27/05/2015 19:38]
milou [find]
doc:systeme:find [24/10/2022 18:38] (Version actuelle)
Jean-Pierre Pinson [Rechercher pour supprimer]
Ligne 5: Ligne 5:
   * Commentaires : //Recherche de fichiers. //   * Commentaires : //Recherche de fichiers. //
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)
-  * Suivi : {{tag>​en-chantier à-tester à-placer}} - FIXME Pour choisir, voir les autres Tags possibles dans [[:​atelier:#​tags|l'​Atelier]].+  * Suivi : 
     * Création par [[user>​martin_mtl]] le 09/12/2012     * Création par [[user>​martin_mtl]] le 09/12/2012
     * Testé par [[user>​smolski]] 26-08-2013     * Testé par [[user>​smolski]] 26-08-2013
   * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=7310 | Lien vers le forum concernant ce tuto]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))   * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​id=7310 | Lien vers le forum concernant ce tuto]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
  
-**Nota :** 
  
-Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! 
  
 ===== Introduction ===== ===== Introduction =====
Ligne 38: Ligne 36:
  
 ^  Options ​ ^  Fonctions ​ ^ ^  Options ​ ^  Fonctions ​ ^
-|-atime +n (ou -n ​|//​trouve les fichiers auxquels on a accédé il y a plus de n jours (ou moins de n jours)//  | +|-atime ​n ou +n ou -n  |//trouve les fichiers auxquels on a accédé il y a strictement n jours, ou plus de n joursou moins de n jours// ​ | 
-|-mtime +n (ou -n ​|//​trouve les fichiers modifiés il y a plus de n jours (ou moins de n jours | +|-mtime ​n ou +n ou -n  |//trouve les fichiers modifiés il y a strictement n jours, ou plus de n joursou moins de n jours//  | 
-|-maxdepth n  |définit le niveau maximum de sous-répertoire à explorer// ​ |+|-maxdepth n  |//définit le niveau maximum de sous-répertoire à explorer// ​ |
 |-type l ou d ou f  |//indique le type de fichier à rechercher (l pour lien symbolique, d pour répertoire (directory),​ f pour fichier)// ​ | |-type l ou d ou f  |//indique le type de fichier à rechercher (l pour lien symbolique, d pour répertoire (directory),​ f pour fichier)// ​ |
 |-name ​ |//​recherche par motif en respectant la casse// ​ | |-name ​ |//​recherche par motif en respectant la casse// ​ |
Ligne 56: Ligne 54:
   - "''​-name''​ " est l'​option qui indique ici que nous voulons spécifier le nom d'un fichier.   - "''​-name''​ " est l'​option qui indique ici que nous voulons spécifier le nom d'un fichier.
  
-Après un long délai d'​attente,​ la recherche se faisant dans toute l'​arborescence de la partition, la réponse ​fini par venir :+Après un long délai d'​attente,​ la recherche se faisant dans toute l'​arborescence de la partition, la réponse ​finit par venir :
 <file bash résultat de la commande précédente> ​ <file bash résultat de la commande précédente> ​
 /​home/​martin/​note</​file>​ /​home/​martin/​note</​file>​
  
-Si l'on n'est pas sûr de la "casse" ​(Majuscule ou Minuscule) on utilise l'​option ''​-iname''​.+Si l'on n'est pas sûr de la casse (Majuscule ou minuscule) on utilise l'​option ''​-iname''​.
  
-<​note>​Règle ​général, on recherche rarement un fichier depuis la racine.</​note>​+<​note>​Règle ​générale, on recherche rarement un fichier depuis la racine.</​note>​
  
 Prenons un autre exemple. Prenons un autre exemple.
Ligne 120: Ligne 118:
 ===== Rechercher pour supprimer ===== ===== Rechercher pour supprimer =====
  
-Un fonction intéressante de //find// est de supprimer en lot les fichiers trouvés.+Une fonction intéressante de //find// est de supprimer en lot les fichiers trouvés.
  
 Il n'est point rare de télécharger ou d'​installer de nombreux fichiers qui ne nous servent plus, mais devant le travail pénible de devoir supprimer tous ces fichiers, on repousse au lendemain cette charge. Heureusement grâce à la fonction -delete de find, c'est un pur bonheur. Il n'est point rare de télécharger ou d'​installer de nombreux fichiers qui ne nous servent plus, mais devant le travail pénible de devoir supprimer tous ces fichiers, on repousse au lendemain cette charge. Heureusement grâce à la fonction -delete de find, c'est un pur bonheur.
Ligne 219: Ligne 217:
  
   - La paire d'​accolade est automatiquement remplacée par le nom du fichier,   - La paire d'​accolade est automatiquement remplacée par le nom du fichier,
-  - et le point virgule final permet de marquer la fin de la commande.+  - et le point-virgule final permet de marquer la fin de la commande.
  
-Au cas où plusieurs fichiers sont traités __dans un même répertoire__,​ pour éviter une relance de la commande après chaque fichier trouvé, remplacer le  '';''​ (point virgule) final par le signe positif :  ''​+''​.+Au cas où plusieurs fichiers sont traités __dans un même répertoire__,​ pour éviter une relance de la commande après chaque fichier trouvé, remplacer le  '';''​ (point-virgule) final par le signe positif :  ''​+''​.
  
 Par exemple ainsi : Par exemple ainsi :
Ligne 231: Ligne 229:
 De la même manière, évitez les références vides ou les noms de répertoires exprimés en relatif dans **$PATH**.</​note>​ De la même manière, évitez les références vides ou les noms de répertoires exprimés en relatif dans **$PATH**.</​note>​
  
-<note important>​Cette commande est difficile à utiliser sur certains shell car ceux-ci donnent une signification particulière des caractères comme l'​accolade ou le point virgule.</​note>​+<note important>​Cette commande est difficile à utiliser sur certains shell car ceux-ci donnent une signification particulière des caractères comme l'​accolade ou le point-virgule.</​note>​
  
  
-Avec **Bash**, la //paire d'​accolades sans espace// (''​{}''​) ne doit pas être protégée, au contraire du// point virgule// qui doit lui être echappé ​à l'aide d'un backslash: ''​\;''​.+Avec **Bash**, la //paire d'​accolades sans espace// (''​{}''​) ne doit pas être protégée, au contraire du// point-virgule// qui doit être échappé ​à l'aide d'un backslash: ''​\;''​.
  
 Voici par exemple comment on peut compter le nombre de lignes de chaque fichier de code Python de ce site: Voici par exemple comment on peut compter le nombre de lignes de chaque fichier de code Python de ce site:
Ligne 386: Ligne 384:
 </​code>​ </​code>​
  
-On va maintenant créer les fichiers et dossiers qui nous servirons ​pour la+On va maintenant créer les fichiers et dossiers qui nous serviront ​pour la
 suite. suite.
  
Ligne 543: Ligne 541:
 ./​toctoc2/​paf ./​toctoc2/​paf
 </​file>​ </​file>​
 +
 +//Fastoche ! Merci// **captnfab** :-D
  
 ==== Répertoires de travail pour -exec et -execdir ==== ==== Répertoires de travail pour -exec et -execdir ====
Ligne 572: Ligne 572:
  
 On voit ici que le répertoire de travail est à chaque fois le répertoire contenant le dossier ''​pif''​. On voit ici que le répertoire de travail est à chaque fois le répertoire contenant le dossier ''​pif''​.
 +
 +==== Copier un fichier dans plusieurs répertoires ====
 +
 +  - Soit un fichier unique : **fichier1**
 +  - à copier avec rsync dans tous les sous-répertoires de /​media/​rep1/​rep2/​ dont le nom commence par le chiffre ''​1''​
 +<code user>​find /​media/​rep1/​rep2/​ -maxdepth 1 -type d -iname '​1*'​ -exec rsync -avz fichier1 "​{}/"​ \;</​code>​
 +<code config retour de la commande find>​sending incremental file list
 +fichier1
 +
 +sent 518,342 bytes  received 35 bytes  345,584.67 bytes/sec
 +total size is 2,​197,​504 ​ speedup is 4.24
 +sending incremental file list
 +fichier1
 +[…]</​code>​
 +
 +La commande peut évidemment être adaptée si le filtre sur le nom est différent (ou s'il n'y a pas de filtre sur le nom), ou si ce sont des sous-sous-répertoires,​ ou si ce sont des fichiers à remplacer, ou si la copie doit être faite avec ''​cp'',​ etc.
  
 ==== Renommer les répertoires ==== ==== Renommer les répertoires ====
Ligne 590: Ligne 606:
  
 Vous pouvez voir l'​original là : Vous pouvez voir l'​original là :
-  * http://wiki.chezlefab.net/​tuto_nix/​tp/​find_01bis+  * Obsolète ​: wiki.chezlefab.net/​tuto_nix/​tp/​find_01bis
  
 ==== Renommer une chaîne de caractère dans des fichiers ==== ==== Renommer une chaîne de caractère dans des fichiers ====
Ligne 608: Ligne 624:
 //Merci à //​**adrien**//​ sur le chan //#​slackware-fr//​ et au //​**captnfab**//​ not' matelot hottentot favori !// :-) //Merci à //​**adrien**//​ sur le chan //#​slackware-fr//​ et au //​**captnfab**//​ not' matelot hottentot favori !// :-)
  
-==== Effacer le contenu d'​un ​fichiers ​====+==== Effacer le contenu d'​un ​fichier ​====
  
 Pour effacer le contenu d'un fichier Pour effacer le contenu d'un fichier
doc/systeme/find.1432748290.txt.gz · Dernière modification: 27/05/2015 19:38 par milou

Pied de page des forums

Propulsé par FluxBB