Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/05/2008, à 13: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, à 19:06)

Hors ligne

#2 Le 03/05/2008, à 13: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, à 14: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, à 18: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, à 21: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, à 19: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 05/05/2008, à 00: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 05/05/2008, à 00:58)

Hors ligne

#8 Le 05/05/2008, à 19: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