#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]
Pour xargs :
-0 : contrepartie du -print0 de findxargs 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 !!!
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