Probleme script avec TAR

LoSs -  
jipicy Messages postés 41342 Statut Modérateur -
Hello,

En fait je debute en linux, et la je tombe sur un os, je comprend pas, je m'explique:

J'ai crée un .sh qui me permet de renommer un fichier dans un certain format puis ensuite il le compresse, supprime l'ancien fichier et le change de repertoire, le probleme est qu'une fois le fichier compressé, téléchargé, c'est comme si le fichier est illisible ou corrompu (il se dezip sans pobleme)

Voici mon .sh (ca dois piker les yeux mais bon xD):
Note: ./hltv_compress.sh 2007-12-15-17h12-de_nuke=-0712151712-de_nuke.dem

#!/bin/bash
HLDS=/home/cs_private/cstrike/hltvs/
DIR_TO=/home/web/patate-factory/files/hltvs/
FILE_OLD=$1

# Changement vers le dossier des HLTVs
cd $HLDS

# Verification que le fichier existe
if [ -f $FILE_OLD ]
then

# Recuperation de la partie gauche du fichier
LEFT=`echo $FILE_OLD | cut -f 1 -d "="`
Y=`echo $LEFT | cut -f 1 -d "-"`
M=`echo $LEFT | cut -f 2 -d "-"`
D=`echo $LEFT | cut -f 3 -d "-"`
H=`echo $LEFT | cut -f 4 -d "-"`
MAP=`echo $LEFT | cut -f 5 -d "-"`
FILE=${Y}'-'${M}'-'${D}'_@_'${H}'_Sur_'${MAP}'.dem'

# Renommage du fichier avec la partie gauche du fichier
mv $FILE_OLD $FILE
echo "** $FILE_OLD renomme en $FILE"

# Creation de l'archive TAR
tar cvfz $FILE.tar $FILE
echo "** $FILE.tar compresse en format TAR"

# Deplacement du fichier vers le dossier HLTVs Patate Factory
#mv $FILE.tar $DIR_TO
#echo "** $FILE.tar deplace dans $DIR_TO"

# Suppression de l'ancien fichier demo
#rm $FILE
#echo "** Suppression du fichier d'origine"
#echo "** HLTV disponible dans le repertoire: $DIR_TO"

# Si le fichier n'existe pas
else
echo "** Le fichier $1 n'existe pas"

# Fin de Condition if
fi

J'espere que quelqu'un pourra me venir en aide, merci d'avance
A voir également:

6 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Il faut quoter ta variable "$FILE" dans la mesure où elle contient un espace !!! Et t'habituer même à écrire tes variables avec des accolades "${FILE}" !
tar cvfz "${FILE}.tar" "${FILE}"
Tu peux aussi "quoter" le reste de ton script et puisque dans ta dernière partie tu as mis des accolades, inutile de quoter chaque partie en dehors des variables comme tu l'as fait pour concaténer, les accolades sont là pour ça justement, donc simplifie l'écriture comme suit :
FILE=${Y}-${M}-${D}_@_${H}_Sur_${MAP}.dem
;-))
1
marc[i1] Messages postés 2603 Statut Contributeur 382
 
Salut,

ton extension est fausse, ce n'est par 'tar' mais 'tar.gz' enfin c'est ce que tu compresses avec les options 'cvfz' :
      -z, --gzip, --ungzip
              filter the archive through gzip

Si tu veux un tar, vire le 'z'
Si tu veux compresser, ajoute '.gz' à ton extension
0
LoSs
 
Merci pour l'info, je vais appliquer ca dés maintenant,

Mais ca ne resoud pas le probleme, je comprend vraiment pas, surtout que sans l'argument "z" ca marche trés bien, le fichier est lisible...
0
marc[i1] Messages postés 2603 Statut Contributeur 382
 
tu le décompresses comment ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LoSs
 
Merci marc !

Ca marche parfaitement maintenant, c'etait simplement le probleme de l'extension .bz lors de la creation de l'archive

Merci pour vos reponses !
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Ben c'est bizarre parce que justement ce fut ma 1ère intuition mais après tests, extension ou pas ça marchait pareil ;-\

D'autant plus que sous GNU/LInux l'extension ça n'a aucune espèce d'importance, enfin à priori ;-))
0