Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/01/2008, à 11:52

Darko

tar création archives nombreuses

Bonjour,

J'aimerai archiver/compresser le contenu de plusieurs répertoires dans plusieurs archives différentes (reprenant le nom des dossiers?).
Je voudrais ne pas avoir à  prendre tous les dossiers un par un.
Est-ce possible?
J'ai vu qu'il existait des utilitaires faisant ça sous windows mais bon.

Merci

Hors ligne

#2 Le 26/01/2008, à 12:20

arnaud741

Re : tar création archives nombreuses

Un petit script shell peut-être ?

En premier, tu enregistres ceci dans un fichier (appelé sauvegarde.sh par exemple) :


#!/bin/bash

for i in mon_dossier_1 mon_dossier_2 mon_dossier_3 mon_dossier_4
do
    tar cvzf $i.tar.gz $i
done

Ensuite, tu n'oublies pas de rendre ce fichier exécutable ( chmod u+x sauvegarde.sh ) et voilà  !

Hors ligne

#3 Le 26/01/2008, à 16:01

Darko

Re : tar création archives nombreuses

Merci de ton aide Arnaud.

Bon je merde un peu là  tu va peut-être pouvoir me dire ce que j'ai oublié.

Alors les dossiers à  archiver:

darko@PARIS:~$ tree ./dossier_test/
./dossier_test/
|-- a
|   `-- a.txt
|-- b
|   `-- b.txt
`-- c
    `-- c.txt

Le script:

#!/bin/bash

for i in 
/home/darko/dossier_test/a_/home/darko/dossier_test/b_/home/darko/dossier_test_c
do
    tar cvzf $i.tar.gz $i
done

Le résultat:

darko@PARIS:~$ ./script_test
./script_test: line 5: syntax error near unexpected token `/home/darko/dossier_test/a_/home/darko/dossier_test/b_/home/darko/dossier_test_c'
./script_test: line 5: `/home/darko/dossier_test/a_/home/darko/dossier_test/b_/home/darko/dossier_test_c'

Par ailleurs, même si là  ça ne fonctionne pas j'ai l'impression que ton script archive le contenu des dossiers. Quelles modifications faudrait-il faire pour qu'il archive aussi le dossier lui même.

Merci!

Dernière modification par Darko (Le 26/01/2008, à 16:04)

Hors ligne

#4 Le 27/01/2008, à 13:10

arnaud741

Re : tar création archives nombreuses

En fait, les torts sont partagés wink !

Toi, tu as un peu mélangé les / et les _ dans la boucle for de ton script... Et moi, je n'avais pas envisagé toutes les situations possibles dans mon script : j'avais supposé que les chemins vers les dossiers à  archiver ne contiendraient pas de /

Voici donc une version améliorée de ce script :


#!/bin/bash

dossier_base="/home/darko"

dossiers_archive="dossier_test/a dossier_test/b dossier_test/c"

for i in $dossiers_archive
do
    cd "$dossier_base"
    ii=$(echo "$i" | sed "s/\//__/g")
    tar cvzf "$dossier_base/$ii.tar.gz" "$i"
done

Après exécution de ce script, l'arborescence de ton dossier personnel devrait ressembler à  ceci :


|-- dossier_test
|   |-- a
|   |   `-- a.txt
|   |-- b
|   |   `-- b.txt
|   `-- c
|       `-- c.txt
|-- dossier_test__a.tar.gz
|-- dossier_test__b.tar.gz
|-- dossier_test__c.tar.gz

et tes archives devraient contenir ceci :


tar tzf dossier_test__a.tar.gz
dossier_test/a/
dossier_test/a/a.txt

tar tzf dossier_test__b.tar.gz
dossier_test/b/
dossier_test/b/b.txt

tar tzf dossier_test__c.tar.gz
dossier_test/c/
dossier_test/c/c.txt

C'est bien ce que tu voulais non ?

Hors ligne

#5 Le 28/01/2008, à 00:34

Darko

Re : tar création archives nombreuses

Exactement oui. à‡a marche impeccable.  C'est un peu technique pour moi mais je vais bien regarder ton script et essayer de comprendre. Merci beaucoup en tous cas.

Hors ligne