Juin 142011
 

il peut être plus efficace de copier une arborescence avec tar qu’avec cp, quoique le must étant encore d’utiliser rsync.

bref, voici comment faire avec tar:

$ cd source_dir
$ tar cf - . | ( cd destination_dir ; tar xf - )

le tirêt « – » indique à tar de travailler sur stdin/stdout au lieu de travailler sur des fichiers, il va donc travailler à la volée.

  4 commentaires à “tar: copier une arborescence”

  1. Merci pour ce rappel

    Variante ( équivalente, sans avantage ni désavantage ):
    cd destination_dir;
    ( cd source_dir ; tar cf – . ) | tar xf

    Avec -z compression pour le transfert par réseaux:
    tar czf / tar xzf pour accélérer les transferts via ftp/ssh

    rsync est plus rapide pour les mises à jour, mais pour une copie intégrale c’est à voir ( je ne sais pas )
    rsync propose aussi l’ option -z de compression.

    • l’inconvénient de l’argument -z, c’est qu’il n’est disponible que dans la version GNU, majoritairement sous Linux donc.
      sous HP-UX/AIX/Solaris, le binaire tar proposé en standard ne l’intègre pas.

      c’est d’ailleurs la grosse différence entre GNU/Linux et Unix.

      Linux, c’est le noyau, accompagné des binaires GNU.
      unix, c’est un ensemble complet.

      par exemple, on peut ne vouloir installer que le noyau Linux sans aucun binaire, difficilement possible sous Unix.

      • et dans ce cas, une compression à la volée, dans un pipe entre les 2 tar ?

        Merci pour cette précision qui me conforte dans ma préférence pour les GNU.. 😉

        • en effet une compression est possible toujours grace à la magie des pipe :
          tar cvf – . |gzip -c |(cd destination_dir ; gunzip -d |tar xf -)

          pour GNU/Linux versus Unix, ça dépend de ce que l’on aime.

          Linux c’est un moteur de voiture ou il faut rajouter tout ce qu’il y a autour, d’où la grande quantité de distributions plus ou moins spécialisées (624 sur http://lwn.net/Distributions/) et le besoin de souvent mettre les mains dans le cambouis, et moi j’aime bien le cambouis 😉

          Unix c’est une voiture complète prête à l’usage (comprenant certaines briques propriétaires), on peut lui rajouter des options si la jacky touch nous prend, on est plus serein avec ce type de système (en grande entreprise)

          de l’autre coté, on a un mix des deux qui sont les (Free|Open|Pico|Dragonfly|Net|etc…)BSD.
          c’est la voiture complète mais basée uniquement sur des briques open source. mais tout n’est pas forcément GNU.

Laisser une réponse pour josephtux Annuler le commentaire

Vous pouvez utiliser ces tags et attributs HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(requis)

(requis)

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.