Gestion des repertoire d'une archive tar

Fermé
carric Messages postés 71 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 23 juin 2006 - 2 sept. 2004 à 08:33
carric Messages postés 71 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 23 juin 2006 - 2 sept. 2004 à 08:54
Bonjour a tous,
je voulais savoir comment faire pour savoir si un fichier se trouvant dans une archive tar est un repertoire ou un fichier standar, mais aussi savoir comment connaitre le contenu d'un repertoire ou bien si il est vide quand il est dans une archive tar aussi.
En réalite ce que je ve faire c regarder si un repertoire d'une archive est vide pour pouvoire le supprimer si c le cas. Je chjerche cela pour l'insérer dans un script de sauvegarde sur un petit server pour ne pas perdre de la place pour archiver des repertoire vide
En esperant avoir été suffisament claire.

Merci d'avance

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
2 sept. 2004 à 08:45
Salut,

Tu dois pouvoir faire ça avec l'option "-t" (man tar) :
 -t, --list
              liste le contenu d'une archive.
;-))

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
0
carric Messages postés 71 Date d'inscription mardi 31 août 2004 Statut Membre Dernière intervention 23 juin 2006 2
2 sept. 2004 à 08:54
merci bien pour l'info mais j'utilise déja cette option voila la partie de mon script qui concerne ce problème :

LISTE=`tar -tf $REPARCHIVE/$INCREMENT` # Memorise les fichier se trouvant dans l'archive

for I in $LISTE; do # Verifie le contenu de l'archive
echo "I = $I"
if [ -d I ]; then
echo "I est un repertoire"
if [ ! -e I/* ]; then
echo "I est un repertoire vide"
tar --delete I -f $REPARCHIVE/$INCREMENT
fi
fi
done

voila ce que j'ai déja fait mais qui ne pe pas fonctionner car je teste si I est un repertoire or il ne l'ai pas puisque c'est un repertoire se trouvant dans une archive et idem pour le I/*.

J'espere que ça pourra mieux vous aider a comprendre mon probleme.

Merci d'avance
0