Forum Programmation.shell cp -R excluant un répertoire

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
1
16
jan.
2020

Salut,

J'ai besoin de faire un cp -R mon_rep mon_NEW_rep mais en excluant un répertoire contenu dans mon_rep.

Par exemple, mon_rep contient :
les répertoires RA, RB, RC, RD, RE, RF, RG, RH
et les fichiers f1,f2, f3, f4

Je veux lancer un cp -R mon_rep mon_NEW_rep mais sans copier RF.
Le hic, c'est que c'est une commande lancée dans un script shell sur des répertoires (mon_rep) différent et qui contiennent donc des fichiers et des répertoires différents. Mais dans tous ces répertoires, il existe le même répertoire RF que je veux exclure.

Aujourd'hui ma solution est de faire la copie puis de supprimer le répertoire RF. Mais le répertoire RF peut être potentiellement assez volumineux, il est donc idiot de le copier pour le supprimer (perte de temps et possible échec par manque d'espace disque … inutilement).
Je pourrai écrire une petite fonction qui parcourait tout mon_rep, et qui copierait chaque élément sauf RF … mais je me demandais s'il n'y avait pas une solution plus élégante.

  • # rsync >> cp

    Posté par  (site web personnel) . Évalué à 6.

    rsync sait faire à peu près tout ce que cp sait faire, et il a une option --exclude.

    • [^] # Re: rsync >> cp

      Posté par  . Évalué à 2.

      dotant plus que rsync permet de reprendre là ou tu en étais du transfert en cas de coupure, et donc toléré les interruptions de transfert

  • # Excellente idée

    Posté par  (site web personnel) . Évalué à 1.

    Très bonne idée : je m'en veux de ne pas y avoir pensé … d'autant que j'utilise rsync par ailleurs.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.