parcourir des repertoires dans un script - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 27-05-2005 à 17:59:48
rm -rf /etc/machin/chouette/* |
non ?
et si tu cherches des fichiers avec des motifs particuliers, pourquoi pas un truc du genre :
find . -iname "*motif*" -exex rm {} \; |
Marsh Posté le 27-05-2005 à 18:00:13
for i in /chemin/complet/* ; do [ -d $i ] && rm -rf ; done
Je crois que ça fonctionne.
Marsh Posté le 27-05-2005 à 18:03:05
Mjules a écrit :
non ?
|
oui, ça marche, mais en fait j'ai pas que ça comme commandes
Marsh Posté le 27-05-2005 à 18:03:39
YupYup a écrit : for i in /chemin/complet/* ; do [ -d $i ] && rm -rf ; done |
ça par contre c'est hyper compliqué
j't'avouerais que je patauge complètement dans ton explication
Marsh Posté le 27-05-2005 à 18:05:59
Krapaud a écrit : oui, ça marche, mais en fait j'ai pas que ça comme commandes |
Tu les mets dans un script qui accepte un argument : le nom du fichier et son path absolu
Et tu appelles ce script dans le find
Marsh Posté le 27-05-2005 à 18:06:42
krapaud : pour tous ce qui est dans chemin/complet/* tester si c'est un repertoire [-d $i] si oui && (et logique) l'effacer
faut lire advanced bash scripting
Marsh Posté le 27-05-2005 à 18:12:57
Ceci dit, la solution du find est meilleure :
find /chemin/complet -type d -exec rm -rf {} \;
Marsh Posté le 27-05-2005 à 18:16:19
YupYup a écrit : Ceci dit, la solution du find est meilleure : |
Citation : find /chemin/complet -type d -exec rm -rf '{}' \; |
Marsh Posté le 27-05-2005 à 18:18:31
Ca fonctionne aussi sans les '' (sous hp-ux en tout cas, j'ai que ça sous la main, mais je suis à peu près sûr que ça passe sous linux)
Marsh Posté le 27-05-2005 à 18:19:34
merci à vous tous
par contre, j'ai encore une petite question.
Dans mon script je fais un chown -R user /truc/bidule/chouette
mais il ne le prends pas.
C'est normal?
Marsh Posté le 27-05-2005 à 18:20:09
Ton user existe ? Comment détermines-tu qu'il "ne le prend pas" ?
Marsh Posté le 27-05-2005 à 18:21:47
Krapaud a écrit : merci à vous tous |
script bien lancé en root ou avec sudo ?
Marsh Posté le 27-05-2005 à 18:27:28
YupYup a écrit : Ton user existe ? Comment détermines-tu qu'il "ne le prend pas" ? |
oui il existe, quand je le fais manuellement ça marche, mais dans le script ça n'a pas fonctionné
avec strace j'ai ça :
stat64("/usr/local/sbin/chown", 0xbffffa10) = -1 ENOENT (No such file or directory) |
Marsh Posté le 27-05-2005 à 18:27:36
ReplyMarsh Posté le 27-05-2005 à 18:37:20
j'ai trouvé, je suis un crétin des savanes
bon alors en gros je télécharge un fichier sur internet avec wget, mais avant de dois supprimer son homologue téléchargé un peu plus tot.
D'où le rm.
Ensuite je tar -zxvf le fichier et je déplace son contenu dans un autre repertoire dont j'ai aussi supprimé le contenu.
La je faisais mon chown, mais j'avais oublié que la commande suivante squidGuard -C all générait les fichiers .db, et que c'est eux qui doivent être ouverts par le processus squidguard, donc je faisais mon chown trop tot
ps->merci
Marsh Posté le 31-05-2005 à 14:13:32
slt,
est ce que vous pourriez me dire comment on fait pour trouver seulement les dossiers commencant par une majuscule?
Thx
++
Marsh Posté le 31-05-2005 à 14:18:43
find /chemin -type d -name "[A-Z]*" |
devrait marcher
Marsh Posté le 31-05-2005 à 14:20:30
^[A-Z]* me semble mieux (non testé)
Marsh Posté le 31-05-2005 à 14:24:28
c'était mon idée initiale, mais ça marche pas avec find chez moi
Marsh Posté le 27-05-2005 à 17:56:29
hello,
je suis en train de faire un petit script sur debian pour mettre à jour des données.
entre autre il doit aller dans plusieurs repertoires faire un rm -rf
j'avais donc mis :
cd /etc/machin/chouette/
rm * -rf
mais bon ça marche pas.
Visiblement le cd n'est pas interprété comme il devrait l'être.
Vous pourriez m'éclairer sur la syntaxe adéquate?
Merci