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 [19/09/2013 19:17] MicP [Rechercher pour supprimer] |
doc:systeme:find [03/07/2014 00:06] 127.0.0.1 modification externe |
||
---|---|---|---|
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 === | ||
Pour une demande de confirmation avant suppression de chaque fichier ".tar.gz" trouvés : | Pour une demande de confirmation avant suppression de chaque fichier ".tar.gz" trouvés : | ||
<code bash>find -iname "*.tar.gz" -ok rm {} \;</code> | <code bash>find -iname "*.tar.gz" -ok rm {} \;</code> | ||
- | --- //[[|david96]] 12/09/2013 21:15// | + | 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 148: | 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 163: | 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 240: | 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 294: | 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 567: | 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 579: | 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> |