mulanee Posté(e) le 3 mai 2014 Partager Posté(e) le 3 mai 2014 Bonjour, Comment faire une destruction recursive et selective de repertoire? Dans mon dossier /photo j'ai un répertoire qui a été créé dans tous les répertoires et sous répertoires, et qui porte un nom unique et connu; je voudrais le supprimer. Existe-t il une alternative à File station comme pcmanfm par exemple? Merci. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Oooops! Posté(e) le 3 mai 2014 Partager Posté(e) le 3 mai 2014 Bonjour, si tu es sous Windows, tu peux utiliser la fonction de recherche de l'Explorateur de fichiers à partir de la racine de ton volume pour afficher en une seule fois tous ces répertoires qui ont le même nom; afficher aussi la colonne "chemin d'accès" (ou "Dossier", selon la version) pour faire une petite vérif; ensuite il n'y a plus qu'à sélectionner tous ces répertoires (en utilisant les règles classiques de sélection multiple) et les effacer. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mulanee Posté(e) le 3 mai 2014 Auteur Partager Posté(e) le 3 mai 2014 Je suis sous linux 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 3 mai 2014 Partager Posté(e) le 3 mai 2014 Utiliser la fonction de recherche avancée de filestation avec comme emplacement tous les sous dossiers: de "photo" et type de fichier "tous les dossiers" ensuite sélectionner tous les items de la liste (clic sur le premier et shift-clic sur le dernier) puis "action->supprimer" 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mulanee Posté(e) le 3 mai 2014 Auteur Partager Posté(e) le 3 mai 2014 Merci, comment se trouve la recherche avancée? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 3 mai 2014 Partager Posté(e) le 3 mai 2014 Merci, comment se trouve la recherche avancée? Suffit de cliquer sur la loupe 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gaetan.cambier Posté(e) le 3 mai 2014 Partager Posté(e) le 3 mai 2014 pour quelqu'un sous linux, j'aurai proposer la ligne de commande : find . -name "FILE-TO-FIND" -exec rm -rf {} ; (je sais je connais pas l'utilisation de l'interface graphique -->[]) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 3 mai 2014 Partager Posté(e) le 3 mai 2014 pour quelqu'un sous linux, j'aurai proposer la ligne de commande : find . -name "FILE-TO-FIND" -exec rm -rf {} ; (je sais je connais pas l'utilisation de l'interface graphique -->[]) Bon, si il s'agit de montrer sa science, alors allons-y ... (pas taper hein, j'ai juste du temps à perdre ce soir!) "find ... -exec" n'est pas toujours très optimal si les fichiers trouvés sont nombreux. Je proposerai plutôt: find . -deph -name "FILE-TO-FIND" -print0 | xargs -0 rm -rf "-depth" pour éviter des erreurs dans le cas de répertoires imbriqués qui matchent tous deux la condition (en fait ça marche quand même sans c'est plus propre ainsi) le "-print0" pour find et le "-0" de xargs c'est au cas ou certains fichiers ont des espaces dans leurs noms. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mulanee Posté(e) le 3 mai 2014 Auteur Partager Posté(e) le 3 mai 2014 rm fonctionne pour les répertoires également ?? (question initiale) Est-ce que la commande fonctionnerait avec rmdir? Suffit de cliquer sur la loupe Effectivement, ça fonctionne, il suffisait de le savoir, merci. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 3 mai 2014 Partager Posté(e) le 3 mai 2014 (modifié) rm fonctionne pour les répertoires également ?? (question initiale) Oui, si on lui ajoute l'option "-r" (récursif). Est-ce que la commande fonctionnerait avec rmdir? "rmdir" n'efface que les répertoires *vides*. Modifié le 3 mai 2014 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fravadona Posté(e) le 3 mai 2014 Partager Posté(e) le 3 mai 2014 "find ... -exec" n'est pas toujours très optimal si les fichiers trouvés sont nombreux. Quelle en est la raison ? Je ne vois pas pourquoi une redirection ( | xarg ) pourrait aller plus vite qu'un traitement direct ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 3 mai 2014 Partager Posté(e) le 3 mai 2014 (modifié) Quelle en est la raison ? Je ne vois pas pourquoi une redirection ( | xarg ) pourrait aller plus vite qu'un traitement direct ? "find -exec "va "forker" un sous process "rm" pour *chaque* fichier trouvé. Avec la redirection vers "xargs <commande>", ce dernier (xargs) sait créer un minimum de process en invoquant la commande avec plusieurs noms de fichiers en arguments (en tenant comte de la longueur maximum de commande sur le système hote). au lieu d'avoir généré les process: rm <fichier-1> rm <fichier-2> ... rm <fichier-N> (N process donc) on va avoir idéalement: rm <fichier1> <fichier2> ... <fichierN> Un seul process tant que longeur totale des noms des N fichiers n'est pas trop importante, sinon deux, etc ... Bon, je conviens que ça peut être de la sodomisation de diptères mais, j'aime bien chercher la petite bête pour optimiser. Modifié le 4 mai 2014 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fravadona Posté(e) le 3 mai 2014 Partager Posté(e) le 3 mai 2014 A priori les versions récentes de find ont un "xarg" intégré : find /path -name "nomrep" -exec rm -rf {} + 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 4 mai 2014 Partager Posté(e) le 4 mai 2014 A priori les versions récentes de find ont un "xarg" intégré : find /path -name "nomrep" -exec rm -rf {} + C'est tout a fait exact mais je me suis volontairement limité au "find" du busybox intégré à DSM qui ne supporte pas cette fonctionnalité: fserv> find . -type f -exec ls -ld {} "+" find: -exec CMD must end by ';' 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.