IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Désarchiver avec tar en sh


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 754
    Points : 376
    Points
    376
    Par défaut Désarchiver avec tar en sh
    Salutation;

    j'ai un couac dans le dernier script que je dois réaliser et je n'arrive pas à voir ce qui ne vas pas.

    Je possède un fichier dans l'archive contenant les empreintes de divers fichiers.

    Le but est de comparer si deux fichiers sont identiques en se servant de l'empreinte. Mais pour une raison que je ne m'explique pas je ne rentre pas dans mes conditions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ./contenuDansTar.sh test.tar essai.sh
    Le Fichier ListeMD5Tar.txt doit être présent dans l'archive !!!

    Sauf que le fichier est bien présent x)


    Voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    # !/bin/sh
     
    if [ $# -ne 2 ]
    then
    	echo "Usage $0 archive.tar nom_fichier"<&2;
    	exit 1;
    fi
     
    if [ -d $2 ]
    then
    	echo "$2 n'est pas un fichier accessible; Usage $0 archive.tar nom_fichier"<&2;
    	exit 2;
    fi
     
    Liste=0;
    if [ -f $2 ]
    then
    a=`md5sum $2`;
    b=`echo $a | cut -d " " -f1`;
    	for k in `tar -tf $1`
    	do
    		if [ `basename $k` = "ListeMD5Tar.txt" ]
    		then
    		Liste=1;
    		tar -xf $1 ListeMD5Tar.txt;
    		nbLigne=`wc -l essai.sh | cut -d " " -f1`;
    		while read ligne  
    		do
    			empreinte=`echo $ligne | cut -d " " -f1`;
    			fichier=`echo $ligne | cut -d " " -f2`;
    			if [ "$b" = "$empreinte" ]
    			then
    				tar -xf $1 $fichier;
    			fi
    		done < ListeMD5Tar.txt
    		fi
    	done
    fi
     
    if [ $Liste -eq 0 ]
    then
    echo "Le Fichier ListeMD5Tar.txt doit être présent dans l'archive !!!";
    exit 3;
    fi
     
    if [ $Liste -eq 1 ]
    then
    rm ListeMD5Tar.txt;
    fi
    exit 0;

  2. #2
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 284
    Points : 12 736
    Points
    12 736
    Par défaut
    Bonjour,

    Il y a pas mal d'erreurs dans le script:
    -La ligne 2 doit être la ligne 1 et pas d'espace entre le '#' et le '!'.
    -Les redirections d'erreurs sont inversées
    -Des ';' inutiles.
    -La boucle for est déconseillée pour le passage en revue d'une liste de fichier.

    Et pour ton problème à proprement parlé, est-ce que le fichier essai.sh est bien dans le répertoire courant depuis lequel tu éxécutes ton script ?
    Cordialement.

Discussions similaires

  1. Problème avec tar
    Par shafomat dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 10/08/2011, 17h25
  2. Message d'erreur avec tar
    Par riete dans le forum BSD
    Réponses: 0
    Dernier message: 20/02/2008, 14h27
  3. Restauration avec tar et accents
    Par dj_benz dans le forum Administration système
    Réponses: 9
    Dernier message: 23/01/2008, 17h58
  4. Paramètre pour spécifier répertoire décompression avec tar
    Par snoop dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 05/06/2006, 11h00
  5. Réponses: 1
    Dernier message: 23/10/2002, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo