Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1726 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  parcourir des repertoires dans un script

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

parcourir des repertoires dans un script

n°684346
Krapaud
Posté le 27-05-2005 à 17:56:29  profilanswer
 

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 :jap:

mood
Publicité
Posté le 27-05-2005 à 17:56:29  profilanswer
 

n°684348
Mjules
Modérateur
Parle dans le vide
Posté le 27-05-2005 à 17:59:48  profilanswer
 

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 {} \;


Message édité par Mjules le 27-05-2005 à 18:02:03

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°684349
YupYup
Non.
Posté le 27-05-2005 à 18:00:13  profilanswer
 

for i in /chemin/complet/* ; do [ -d $i ] && rm -rf ; done
 
Je crois que ça fonctionne.


---------------
"The marketing guys said the HP-35 would be a failure because it was too small, and then we couldn't make them fast enough to meet the demand. The marketing folks don't know everything." - Bill Hewlett
n°684351
Krapaud
Posté le 27-05-2005 à 18:03:05  profilanswer
 

Mjules a écrit :

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 {} \;



 
 
oui, ça marche, mais en fait j'ai pas que ça comme commandes :D

n°684352
Krapaud
Posté le 27-05-2005 à 18:03:39  profilanswer
 

YupYup a écrit :

for i in /chemin/complet/* ; do [ -d $i ] && rm -rf ; done
 
Je crois que ça fonctionne.


 
 
 [:wam] ça par contre c'est hyper compliqué :o
 
j't'avouerais que je patauge complètement dans ton explication :o

n°684353
Zzozo
Modérateur
Un peu, passionément, à la fol
Posté le 27-05-2005 à 18:05:59  profilanswer
 

Krapaud a écrit :

oui, ça marche, mais en fait j'ai pas que ça comme commandes :D


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


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
n°684354
ory
Posté le 27-05-2005 à 18:06:42  profilanswer
 

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 :o


Message édité par ory le 27-05-2005 à 18:07:06
n°684356
YupYup
Non.
Posté le 27-05-2005 à 18:12:57  profilanswer
 

Ceci dit, la solution du find est meilleure :
 
find /chemin/complet -type d -exec rm -rf {} \;


---------------
"The marketing guys said the HP-35 would be a failure because it was too small, and then we couldn't make them fast enough to meet the demand. The marketing folks don't know everything." - Bill Hewlett
n°684358
ory
Posté le 27-05-2005 à 18:16:19  profilanswer
 

YupYup a écrit :

Ceci dit, la solution du find est meilleure :
 
find /chemin/complet -type d -exec rm -rf {} \;


 

Citation :

find /chemin/complet -type d -exec rm -rf '{}' \;


Message édité par ory le 27-05-2005 à 18:16:48
n°684360
YupYup
Non.
Posté le 27-05-2005 à 18:18:31  profilanswer
 

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)


---------------
"The marketing guys said the HP-35 would be a failure because it was too small, and then we couldn't make them fast enough to meet the demand. The marketing folks don't know everything." - Bill Hewlett
mood
Publicité
Posté le 27-05-2005 à 18:18:31  profilanswer
 

n°684362
Krapaud
Posté le 27-05-2005 à 18:19:34  profilanswer
 

merci à vous tous :jap:
 
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?

n°684364
YupYup
Non.
Posté le 27-05-2005 à 18:20:09  profilanswer
 

Ton user existe ? Comment détermines-tu qu'il "ne le prend pas" ?


---------------
"The marketing guys said the HP-35 would be a failure because it was too small, and then we couldn't make them fast enough to meet the demand. The marketing folks don't know everything." - Bill Hewlett
n°684366
Mjules
Modérateur
Parle dans le vide
Posté le 27-05-2005 à 18:21:47  profilanswer
 

Krapaud a écrit :

merci à vous tous :jap:
 
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?


script bien lancé en root ou avec sudo ?


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°684370
Krapaud
Posté le 27-05-2005 à 18:27:28  profilanswer
 

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é :o
 
avec strace j'ai ça :  

stat64("/usr/local/sbin/chown", 0xbffffa10) = -1 ENOENT (No such file or directory)
stat64("/usr/local/bin/chown", 0xbffffa10) = -1 ENOENT (No such file or directory)
stat64("/usr/sbin/chown", 0xbffffa10)   = -1 ENOENT (No such file or directory)
stat64("/usr/bin/chown", 0xbffffa10)    = -1 ENOENT (No such file or directory)
stat64("/sbin/chown", 0xbffffa10)       = -1 ENOENT (No such file or directory)
stat64("/bin/chown", {st_mode=S_IFREG|0755, st_size=34572, ...}) = 0
stat64("/bin/chown", {st_mode=S_IFREG|0755, st_size=34572, ...}) = 0

n°684371
Krapaud
Posté le 27-05-2005 à 18:27:36  profilanswer
 

Mjules a écrit :

script bien lancé en root ou avec sudo ?


en root oui :)

n°684374
Krapaud
Posté le 27-05-2005 à 18:37:20  profilanswer
 

j'ai trouvé, je suis un crétin des savanes :D
 
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 :D
 
ps->merci :)


Message édité par Krapaud le 27-05-2005 à 18:37:44
n°686054
ohan
Posté le 31-05-2005 à 14:13:32  profilanswer
 

slt,
est ce que vous pourriez me dire comment on fait pour trouver seulement les dossiers commencant par une majuscule?
 
Thx
++

n°686057
Mjules
Modérateur
Parle dans le vide
Posté le 31-05-2005 à 14:18:43  profilanswer
 

find /chemin -type d -name "[A-Z]*"

 devrait marcher


Message édité par Mjules le 31-05-2005 à 14:19:11

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°686059
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 31-05-2005 à 14:20:30  profilanswer
 

^[A-Z]* me semble mieux (non testé)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°686065
Mjules
Modérateur
Parle dans le vide
Posté le 31-05-2005 à 14:24:28  profilanswer
 

c'était mon idée initiale, mais ça marche pas avec find chez moi


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°686066
ohan
Posté le 31-05-2005 à 14:25:43  profilanswer
 

merci bcp, ca fonctionne nickel

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  parcourir des repertoires dans un script

 

Sujets relatifs
Script sous linuxsaisie de mot de pass dans un script ?
script perl pour voir les partitons[SSH] Comment exécuter un script ?
pb d'écrasement de variable? avec un script awklancer un script au demarrage
script d'insertionScript de nettoyage
[Mandriva 2005] Script d'upload de l'adresse IPProbleme de script shell
Plus de sujets relatifs à : parcourir des repertoires dans un script


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR