Bonjour,
J'ai un script qui, dans un traitement, doit mettre tous les fichier "ced*met.las*" et "ced*exp.las*" dans un fichier tar.
J'ai cherché sur le net comment faire un "ou" avec ls, mais je n'ai pas trouvé.
J'ai trouvé qu'on pouvait utiliser *, ? et [] mais pas de notion de ou logique.
Qu'à cela ne tienne, j'ai fais deux instructions :
Code :
- ls ced*met.las* 2>/dev/null
- if [ $? = 0 ]
- then
- # compression des fichiers editions
- echo "compression des fichiers MET" >> $fichier
- tar cvf ${NOM_FICINT} ced*met.las* >> $fichier 2>&1
- fi
- ls ced*exp.las* 2>/dev/null
- if [ $? = 0 ]
- then
- # compression des fichiers editions
- echo "compression des fichiers EXP" >> $fichier
- tar cvf ${NOM_FICINT} ced*exp.las* >> $fichier 2>&1
- fi
|
Mais le code ci-dessus écrase le tar créé dans le permier if (d'ailleurs, pas bien pigé, car il ne l'écrase pas complètement, il reste un des fichiers dedans mais bon).
Qu'à cela ne tienne, il suffit que je lance avec Avf la première fois, puis cvf la seconde...
Sauf que j'ai un problème : il n'y a pas forcément toujours de fichier "ced*met.las*" ou "ced*exp.las*"
Comment :
- Faire un "ls ced*(met|exp).las* 2>/dev/null
- ou bien comment dire à tar de créer ou ajouter de façon automatique selon existence du fichier
J'ai tenté de mettre Avf à chaque fois, mais le fichier généré est alors invalide, et je peux plus le untar.