Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 03/05/2008, à 12:29

vince06fr

commande pour effacer automatiquement des fichiers[résolu]

Bonjour à tous
Voilà j'utilise un script rsync pour synchroniser 2 repertoires mais la sources contient des fichiers html à l'interieur de nombreux sous répertoire et je voudrais effacer ces repertoires du dossier destinations
j'ai tenté

rm `find '/home/vince/Bureau/CoursHTML -name "*.html'"`

mais ça ne marche pas
j'ai aussi tenté

vince@Bob:~$ find /home/vince/Bureau/CoursHTML -name "*.html" >> list
vince@Bob:~$ rm `cat list`

et j'obtiens :

rm: ne peut enlever `/home/vince/Bureau/CoursHTML/Modules': Aucun fichier ou dossier de ce type
rm: ne peut enlever `Globaux/Urologie': Aucun fichier ou dossier de ce type
rm: ne peut enlever `Nephrologie/Centre': Aucun fichier ou dossier de ce type
rm: ne peut enlever `hemodialyse/Diaporama/img47.html': Aucun fichier ou dossier de ce type
[etc..]

Il me semble que c'est les espaces dans les noms de fichiers qui pose probleme car un

echo `find /home/vince/Bureau/CoursHTML -name "*.html"`

renvoit

de Catherine Pastorelli_IDE Tzang/Diaporamas/2uro/text108.html /home/vince/Bureau/CoursHTML/Modules Globaux/Urologie Nephrologie/Cours de Catherine Pastorelli_IDE Tzang/Diaporamas/2uro/img64.html /home/vince/Bureau/CoursHTML/Modules Globaux/Urologie Nephrologie/Cours de Catherine Pastorelli_IDE Tzang/Diaporamas/2uro/text12.html [etc...]

Comment faire ??

Dernière modification par vince06fr (Le 04/05/2008, à 18:06)

Hors ligne

#2 Le 03/05/2008, à 12:34

snapshot

Re : commande pour effacer automatiquement des fichiers[résolu]

Déjà, utilise l'option -delete de find, ça marchera mieux, et ensuite, rsync contient lui-même des options pour effacer les fichiers distants qui ne sont plus présents sur la source, et ensuite, rsync peut ne pas envoyer certains fichiers au moyen de l'option --exclude


Pensez à mettre [Résolu] dans le titre une fois votre problème réglé !

Hors ligne

#3 Le 03/05/2008, à 13:22

snapshot

Re : commande pour effacer automatiquement des fichiers[résolu]

Et globalement, pour agir sur des répertoires :

find /home/vince/Bureau/CoursHTML -name "*.html" -depth -print0 | xargs -0 rm

Pour find :
-print0 : pour séparer chaque fichier par un caractère \0 et bien faire la différence avec espace
-depth : lister les fichiers puis les répertoires ensuite... car on ne peut pas effacer des répertoires contenant encore des fichiers

Pour xargs :
-0 : contrepartie du -print0 de find

xargs est une commande peu utilisée car mal comprise mais cependant très puissante.

Plus générique :

find /home/vince/Bureau/CoursHTML -name "*.html" -depth | while read fichier
do
  rm "$fichier"
done

Pensez à mettre [Résolu] dans le titre une fois votre problème réglé !

Hors ligne

#4 Le 03/05/2008, à 17:12

vince06fr

Re : commande pour effacer automatiquement des fichiers[résolu]

Merci beaucoup je vais tester tout ça...

Hors ligne

#5 Le 03/05/2008, à 20:29

Alain.g

Re : commande pour effacer automatiquement des fichiers[résolu]

snapshot a écrit :

Pour xargs :
-0 : contrepartie du -print0 de find

xargs est une commande peu utilisée car mal comprise mais cependant très puissante.

Plus générique :

find /home/vince/Bureau/CoursHTML -name "*.html" -depth | while read fichier
do
  rm "$fichier"
done

On peut également utiliser l'option -print0 de find avec la structure "while read" :

find . -print0 | while read -rd $'\0' i ; do commande "$i" ; done

Xubuntu Karmic !

Hors ligne

#6 Le 04/05/2008, à 18:05

vince06fr

Re : commande pour effacer automatiquement des fichiers[résolu]

Bon va falloir que j'étudie tout ça pour bien comprendre, mais en tout cas, ça marche , merci beaucoup !!! roll

Hors ligne

#7 Le 04/05/2008, à 23:57

brunix

Re : commande pour effacer automatiquement des fichiers[résolu]

Bonjour ,

La bonne commande pour effectuer cette action avec 'find' est simplement :

find /home/vince/Bureau/CoursHTML -name "*.html" -exec rm {} \;
ou
find /home/vince/Bureau/CoursHTML -name "*.html" -ls -exec rm {} \;
Cette dernière permet d'afficher les fichiers avant qu'il ne soient supprimés.

Dernière modification par brunix (Le 04/05/2008, à 23:58)

Hors ligne

#8 Le 05/05/2008, à 18:40

vince06fr

Re : commande pour effacer automatiquement des fichiers[résolu]

Et bien, ç'est quand même fort, il n'y a jamais une seule solution mais toujours plusieurs.. Merci beaucoup pour vos réponses et explications, la force d'ubuntu, c'est vraiment sa communauté...

Hors ligne

Haut de page ↑