[RECHERCHE DE FICHIERS]: Selon extensions

Bjr,

Je souhaiterais connaître les commandes permettant de rechercher globalement (cad sur tout le disque) les fichiers d’une extension donnée.

Sur d’autres OS je tape .pdf dans rechercher et j’obtiens une liste exhaustive mais sur le pingouin j’ai du mal.

Pourriez vous m’aiguiller car c’est le bronx sur mes DD.

merci

Ok j’ai trouvé locate *.pdf cependant comment faire pour tout déplacer dans un dossier donné en une seule commande? Est ce que mv *.pdf > toto marche?

Grrr non

Bonjour,

La commande find permet de rechercher des fichiers selon différents critères.

Pour rechercher à partir du répertoire utilisateur tous les fichiers de type PDF :

find $HOME -name '*.pdf'

Pour les déplacer, on peut utiliser l’option exec.

merci pour la réponse cependant à quoi ressemblerait la syntaxe pour tout déplacer en une fois?

find $HOME -name -exec '*.pdf' <nom du repertoire> ?

locate c’est très bien, mais il faut penser à faire un updatedb avant.
avec “locate -i” tu n’as plus de distinction majuscule/minuscule

Bonjour,

Bien mettre les choses dans l’ordre et comprendre la commande :

Salut,

A quoi servent les crochets du titre alors qu’il n’est demandé que “MAJUSCULES!” :laughing: :laughing: :laughing:

Ok

Par contre comment trouver tous les fichiers .pdf sur mon dd externe, j’ai essayé toutes les commandes

Fais bien attention avant d’exécuter à l’aveugle, tu peux déplacer TOUS tes pdf d’un seul coup si tu ne fais pas gaffe…

Que tu vas bien-sûr adapter à ton cas.

[quote=“lsam”]Fais bien attention avant d’exécuter à l’aveugle, tu peux déplacer TOUS tes pdf d’un seul coup si tu ne fais pas gaffe…

Que tu vas bien-sûr adapter à ton cas.[/quote]

Merci j’obtiens find: Paramètre manquant pour « -exec »

C’est quand même fort qu’à partir du gestionnaire de fichier de gnome je n’arrive pas à faire ca :-s

J’ai lancé

tu oublies les caractères de fin. Sois vigilant s’il te plaît.

Si je fais find /media/Nouveau* -name "*.pdf"

J’ai la liste, c’est apres que ca bug

oui, normal, je répète, tu n’as pas repris TOUS les caractères de ma fin de ligne de code : [mono];[/mono]

[quote=“lsam”]Fais bien attention avant d’exécuter à l’aveugle, tu peux déplacer TOUS tes pdf d’un seul coup si tu ne fais pas gaffe…

Que tu vas bien-sûr adapter à ton cas.[/quote]
Cette commande lancera la commande mv une fois par fichier pdf.

La variante suivante permet de lancer une seule fois la commande mv, déplaçant tous les fichiers nommés *.pdf de l’arborescence /chemin/vers/ton/disque/ vers /répertoire/destination :

merci, que dois je mettre entre crochets?

Salut,

Rien.

[mono]{}[/mono] » La chaîne {} sera remplacée par le nom du fichier en cours de traitement.
[mono];[/mono] » terminera la commande [mono]-exec[/mono]

[quote=“lsam”]find /chemin/vers/ton/disque/ -name "*.pdf" -exec mv {} /répertoire/destination \;
[/quote]

Ok merci beaucoup j’essaierai ca demain matin

C’est vrai que je galère avec le shell car je débute juste avec le manuel de GNU

Vérifie d’abord ta ligne de commande [mono]find[/mono] en utilisant [mono]ls[/mono] à la place de [mono]mv[/mono] : [mono]ls[/mono] ne déplacera pas les fichiers trouvés par [mono]find[/mono], mais il listera tout ce que [mono]find[/mono] aura pu trouver, (ou pas : s’il y a des problèmes d’accès à certains fichiers).

=======
Fait gaffe à la récursivité : Le répertoire de destination ne doit pas être un sous-répertoire du répertoire de base de le recherche.

=======
Fait gaffe aussi au fait que si deux fichiers pdf trouvés par find ont le même nom, il n’en restera qu’un dans le répertoire de destination : le premier déplacé sera écrasé par le suivant du même nom.

Pour éviter ça, il y a bien l’option [mono]-i[/mono] de [mono]mv[/mono], mais s’il y a beaucoup de doublons, ça risque d’être pénible.

[quote="“man mv”"]… -i, --interactive demander confirmation avant d'écraser …[/quote]Ou alors, il faudrait utiliser une des options de [mono]mv[/mono] : [mono]–backup[/mono] ou [mono]-b[/mono]

=======
Plutôt que [mono]-exec[/mono], utilise [mono]-execdir[/mono]

[quote="“man find”"]…
-execdir commande ;

-execdir commande {} +

   Semblable  à  [mono]-exec[/mono],  sauf que la commande indiquée sera exécutée à partir du sous-répertoire contenant le fichier correspon‐
   dant, qui n'est normalement pas celui à partir duquel vous avez lancé [mono]find[/mono]. C'est une méthode bien plus  fiable  d'invocation
   de  commande,  puisqu'elle  évite  des  conflits de résolution de chemins des fichiers trouvés. Comme pour l'option [mono]-exec[/mono], la
   forme de [mono]-execdir[/mono] avec « [mono]+[/mono] » construira une ligne de commande de telle sorte qu'elle pourra traiter plusieurs fichiers  trou‐
   vés  en  une  passe  (avec une restriction, chaque invocation de commande ne portera que sur une liste de fichiers issue d'un
   seul et même répertoire). Si vous utilisez cette option, veillez bien à  ce  que  votre  variable  d'environnement  [mono]$PATH[/mono]  ne
   contienne pas une référence au répertoire courant  « [mono].[/mono] », sinon un pirate pourrait lancer toutes les commandes qu'il souhaite
   en mettant un fichier au nom adéquat dans les répertoires où vous allez lancer un [mono]-execdir[/mono]. De la même  manière,  évitez  les
   références vides ou les noms de répertoires exprimés en relatif dans [mono]$PATH[/mono].

…[/quote]