Forum Programmation.shell tar récursif avec filtrage de fichiers

Posté par  (site web personnel) .
Étiquettes : aucune
0
20
oct.
2006
Bonjour,


Je cherche à créer une archive contenant tous les *.txt d'un ensemble de répertoires. Logiquement, la commande :

tar cfvz mon.tar.gz repertoire/*.txt

ne créée une archive avec les .txt qui sont uniquement placés à la racine de repertoire/, et pas les répertoires d'après...
J'ai essayé l'option -T de tar, mais visiblement, je ne 'ai pas su l'utiliser...
Un pipe de ls -R *.txt vers tar va t il conserver l'arborescence?

Est ce quelqu'un pourrait m'aider ? Merci d'avance.
  • # find

    Posté par  . Évalué à 2.

    Essaye ça:
    find repertoire/ -name '*.txt' | tar -czvf mon.tar.gz


    Un ls -R *.txt ne marchera pas, car le motif '*.txt' est remplacé avant que la commande ls soit exécutée.
    ls ls -R *.txt va donc lister récursivement le contenu des répertoires dont le nom correspond au motif '*.txt' dans ton répertoire courant.

    L'option -T de tar permet d'aller chercher la liste des fichiers à archiver dans un fichier plutôt que sur la ligne de commande.
  • # C'est pourtant facile

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

    tar cvzf mon.tar.gz repertoire/**/*.txt
    • [^] # Re: C'est pourtant facile

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

      hé beh non, c'est pas si facile que ça, car cette commande n'est pas recursive, et va chercher les *.m dans les premiers repertoire contenus dans "repertoire"... Mais merci quand même.

Suivre le flux des commentaires

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