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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Exclure un répertoire dans une commande rm

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Exclure un répertoire dans une commande rm

n°1058489
naunau31
Posté le 07-07-2008 à 11:48:39  profilanswer
 

Bonjour,
 
Mon problème est simple mais je n'arrive pas à en trouver la solution.
 
Je souhaite réinitialiser périodiquement un répertoire de test. Sur le principe, j'ai un répertoire A et un répertoire B. Chacun de ces répertoires contient des fichiers et des dossiers.
Je veux vider le répertoire B de son contenu sauf un seul dossier (celui contenant des paramètres). Une fois ce répertoire B vide, je veux y recopier les fichiers et dossiers du répertoire A, à l'exception du dossier que je n'ai pas effacé lors de la première manip.
 
Pour lancer ces instructions, je me servirai d'une tâche cron qui exécutera le fichier bash.
J'ai par ailleurs eu des pistes avec l'instruction find mais il n'y a rien à faire, je n'arrive pas à faire fonctionner le find avec le rm.
 
Voilà. Je sèche lamentablement alors si quelqu'un pouvait me donner un tuyau, ça m'enlèverait un souci.
Merci et bonne journée,
 
Arnaud

mood
Publicité
Posté le 07-07-2008 à 11:48:39  profilanswer
 

n°1058540
Combi_A_Ve​ndre
Posté le 07-07-2008 à 14:15:26  profilanswer
 

Bonjour,

 

Et quelque chose de ce genre ?
# find repB -type d -maxdepth 0 | grep -v repAGarder| xargs rm -Rf
# cp -R repA/* repB

 

Attention, je n'ai pas testé !

 

vw


Message édité par Combi_A_Vendre le 07-07-2008 à 14:15:47
n°1058592
Manisque
Posté le 07-07-2008 à 16:07:18  profilanswer
 

il y a surement une option --exclude=fichier (à tester) pour rm (comme pour tar et rsync).


---------------
Si tu bois froid juste après le potage chaud, ça va faire sauter l'émail de tes dents - Monorailcat iz ohverin
n°1058617
naunau31
Posté le 07-07-2008 à 17:24:51  profilanswer
 

Re,
 
Je n'ai pas trouvé d'option de type exclude pour la commande rm.
Quant à la méthode qui m'a été proposée avec le grep et le xargs, je n'ai pas réussi à la faire fonctionner rapidement.
 
Comme je n'ai pas beaucoup de temps à consacrer à cette fonction en ce moment, j'ai opté pour la méthode radicale, à savoir la copie du répertoire que je veux garder dans une autre arborescence, la copie des fichiers puis la recopie du répertoire sauvegardé. C'est pas très beau mais ça fonctionne.
 
Je me pencherai sur une méthode plus jolie (notamment celle avec grep et xargs) pendant le calme des congés d'été...
 
Merci en tout cas pour vos réponses.
 
Arnaud

n°1058644
Cruchot
Posté le 07-07-2008 à 20:39:09  profilanswer
 

Tu peux faire un :
 
#find /tonrep -type d ! -name pattern_a_exclure ?

n°1058657
Combi_A_Ve​ndre
Posté le 07-07-2008 à 21:37:34  profilanswer
 

Cruchot a écrit :

Tu peux faire un :
 
#find /tonrep -type d ! -name pattern_a_exclure ?


 
Tout à fait, mais il faut utiliser maxdepth, sinon tu vas vider les répertoires qui sont à l'intérieur du répertoire à garder.
 
vw.

n°1058707
omicron
Pas de bras, pas de caméra !
Posté le 08-07-2008 à 07:55:42  profilanswer
 

tu fais un mov de ton sous-repertoire avant et après ton rm
 
au niveau du fs, c'est juste un node qui change, pas besoin de toucher à son contenu (tes fichiers de config)
 
et si ça marche pas comme tu veux et que t'es quand même obligé de copier les fichiers ! tu as une autre solution :
tu laisses ton repertoire de config quelquepart et tu fait un lien symbolique dessus dans ton repertoire de test. (commande ln -s)


Message édité par omicron le 08-07-2008 à 07:57:07
n°1058713
naunau31
Posté le 08-07-2008 à 08:27:15  profilanswer
 

Bonjour,
 
Oui j'avais pensé au lien symbolique omicron. Mais je vais avoir ensuite le problème de l'exclusion du fichier lors, non plus de la suppression, mais lors de la copie.
Je m'explique. Si je fais un lien symbolique que j'appelle du même nom que le répertoire (obligé bien sûr), que va-til se passer pour le lien lorsque je vais copier la totalité de l'autre répertoire. Est-ce que le lien ne va pas s'écraser ou est-ce qu'il ne va pas y avoir 2 répertoires du même nom ou plus exactement le répertoire copier + le lien ?

n°1058714
omicron
Pas de bras, pas de caméra !
Posté le 08-07-2008 à 08:35:11  profilanswer
 

pour rep A et B tu stocke ta config à dans des path à l'extérieur
chaque rep possede un lien symbolique X vers la config qu'il utilise
 
quand tu fais ton opération de réinitialisation :
tu effaces le contenu de B
tu copies le contenu de A vers B
tu effaces le lien X de B et tu recrées le bon lien X vers la config de B


Message édité par omicron le 08-07-2008 à 08:38:32
n°1058715
omicron
Pas de bras, pas de caméra !
Posté le 08-07-2008 à 08:38:05  profilanswer
 

ma solution du simple mv ne suffit pas ?


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

  Exclure un répertoire dans une commande rm

 

Sujets relatifs
commande élémentaire "ls -l" qui ne termine pasFaire du streaming avec vlc d'un répértoire d'images
Aide sur VSFTPD (repertoire par defaut et compte user)Enregistrer les résultats d'une commande
[UNIX] Commande pour récupérer la version du XProblème avec commande /mode $me xchat
commande de récupération de disque durCommande ssh
Equivalent commande shell pour windows 
Plus de sujets relatifs à : Exclure un répertoire dans une commande rm


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