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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:systeme:find [12/09/2013 21:21] david96 [Recherche par nom simple & multiple] fonction -delete |
doc:systeme:find [04/03/2014 09:26] captnfab [Rechercher pour supprimer] |
||
---|---|---|---|
Ligne 8: | Ligne 8: | ||
* Tags : | * Tags : | ||
* Commentaires : //recherche de fichiers. // | * Commentaires : //recherche de fichiers. // | ||
- | * Débutant, à savoir : [[manuel: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à !.]] :-) |
Ligne 69: | Ligne 69: | ||
Je cherche à trouver les répertoires archives dans /media/homebis. | Je cherche à trouver les répertoires archives dans /media/homebis. | ||
- | Première chose à noter, il peut-être nécessaire de se mettre en [[commande:su|root]] pour avoir accès à tous les répertoires. | + | Première chose à noter, il peut-être nécessaire de se mettre en [[:doc:systeme:su|root]] pour avoir accès à tous les répertoires. |
<code bash> | <code bash> | ||
find /media/homebis -type d -name 'archives'</code> | find /media/homebis -type d -name 'archives'</code> | ||
Ligne 106: | Ligne 106: | ||
Si je tape cette commande en étant dans mon répertoire /home/martin, le résultat sera une liste de fichiers ./.... \\ | Si je tape cette commande en étant dans mon répertoire /home/martin, le résultat sera une liste de fichiers ./.... \\ | ||
- | Il est intéressant de savoir que l'on peut étendre la recherche aux fichiers mp3 et mp4 en remplaçant le 3 par un ?((Voir : [[manuel:regexp]])). La commande deviendrait donc : | + | Il est intéressant de savoir que l'on peut étendre la recherche aux fichiers mp3 et mp4 en remplaçant le 3 par un ?((Voir : [[:doc:programmation:shell:regexp]])). La commande deviendrait donc : |
<code bash> | <code bash> | ||
find -type f -name "*.mp?" -o -name "*.ogg"</code> | find -type f -name "*.mp?" -o -name "*.ogg"</code> | ||
Ligne 123: | Ligne 123: | ||
<note important>**Attention, la fonction -delete ne vous demande pas de confirmation**</note> | <note important>**Attention, la fonction -delete ne vous demande pas de confirmation**</note> | ||
- | + | === Supprimer avec demande de confirmation === | |
- | --- //[[|david96]] 12/09/2013 21:15// | + | Pour une demande de confirmation avant suppression de chaque fichier ".tar.gz" trouvés : |
+ | <code bash>find -iname "*.tar.gz" -ok rm {} \;</code> | ||
+ | Merci à [[http://debian-facile.org/viewtopic.php?pid=67484#p67484|MicP]] pour cette trouvaille :) | ||
===== Filtrer en fonction des droits ===== | ===== Filtrer en fonction des droits ===== | ||
Ligne 146: | Ligne 148: | ||
===== Recherche par motif ===== | ===== Recherche par motif ===== | ||
- | Pour rechercher un motif, il faut utiliser la même option, et utiliser les [[commande:regexp | REGEXP]]. | + | Pour rechercher un motif, il faut utiliser la même option, et utiliser les [[:doc:programmation:shell:regexp | REGEXP]]. |
Voici par exemple la recherche de tous les fichiers terminant par ''.java'' dans le dossier courant: | Voici par exemple la recherche de tous les fichiers terminant par ''.java'' dans le dossier courant: | ||
Ligne 161: | Ligne 163: | ||
</code> | </code> | ||
+ | ===== Rechercher les fichiers n'appartenant pas à l'utilisateur ===== | ||
+ | |||
+ | Il peut parfois être utile de rechercher les fichiers n'appartenant pas à l'utilisateur, en vue de corriger un problème rencontré avec une application (par exemple, un fichier peut appartenir à root au lieu d'appartenir à l'utilisateur ; ce dernier risque de ne pas avoir de droits dessus, ce que peut alors provoquer une erreur dans une application cherchant à modifier le dit fichier). | ||
+ | |||
+ | Pour ce faire, il suffit d'exécuter là commande suivante, où « utilisateur » est à remplacer par votre nom d'utilisateur : | ||
+ | |||
+ | <code bash> | ||
+ | find /home/utilisateur ! -user utilisateur | ||
+ | </code> | ||
+ | |||
+ | ou bien, en utilisant des variables : | ||
+ | |||
+ | <code bash> | ||
+ | find $HOME ! -user $USER | ||
+ | </code> | ||
+ | |||
+ | Pour avoir davantage d'informations sur les fichiers ainsi trouvés, vous pouvez ajouter l'option ''ls'' : | ||
+ | |||
+ | <code bash> | ||
+ | find $HOME ! -user $USER -ls | ||
+ | </code> | ||
===== -exec - Exécuter une commande ===== | ===== -exec - Exécuter une commande ===== | ||
Ligne 238: | Ligne 261: | ||
À maîtriser absolument avant de poursuivre. | À maîtriser absolument avant de poursuivre. | ||
- | * [[manuel:repertoire | Différents types de chemin — Notion de répertoire de travail]] - Pas à pas. | + | * [[:doc:programmation:shell:repertoires | Différents types de chemin — Notion de répertoire de travail]] - Pas à pas. |
Ligne 292: | Ligne 315: | ||
</code> | </code> | ||
- | On voit qu'ici, pour chaque dossier ''paf'' de trouvé, c'est seulement __le chemin du répertoire d'où nous lançons notre commande find__, qui est indiqué par l'exécution de [[commande:pwd | la commande : pwd]], ce qui n'est pas ce que nous voulons obtenir. 8-o | + | On voit qu'ici, pour chaque dossier ''paf'' de trouvé, c'est seulement __le chemin du répertoire d'où nous lançons notre commande find__, qui est indiqué par l'exécution de [[:doc:systeme:pwd | la commande : pwd]], ce qui n'est pas ce que nous voulons obtenir. 8-o |
Employons ''-execdir'' maintenant : | Employons ''-execdir'' maintenant : | ||
Ligne 565: | Ligne 588: | ||
=== le chevron === | === le chevron === | ||
- | Avec [[commande:chevron|la commande chevron]] | + | Avec [[:doc:programmation:shell:chevrons|la commande chevron]] |
<code bash> | <code bash> | ||
find -type f -iname nom_du_fichier -execdir cat {} nom_du_fichier + > nom_du_fichier \;</code> | find -type f -iname nom_du_fichier -execdir cat {} nom_du_fichier + > nom_du_fichier \;</code> | ||
Ligne 577: | Ligne 600: | ||
=== cp === | === cp === | ||
- | Ou encore avec [[commande:cp|la commande cp]] : | + | Ou encore avec [[:doc:systeme:cp|la commande cp]] : |
<code bash> | <code bash> | ||
find -type f -iname nom_du_fichier -exec cp /dev/null {} \;</code> | find -type f -iname nom_du_fichier -exec cp /dev/null {} \;</code> |