OVH Cloud OVH Cloud

tar, gzip et shell ...

1 réponse
Avatar
Sylvain LAROCHE
bonjour,

j'ai un petit souci avec une archive tar.gz, je souhaite en retirer un
répertoire !
pour des raisons techniques je souhaiterais :
- ne pas la refaire à partir des sources !
- ne pas avoir de fichier intermédiaire sur le disque ...

j'ai pensé à une ligne de commande du style :
gunzip < FILE.tar.gz | tar xvf - | <find ou grep> | tar cvf - - | gzip -c >
FILE2.tar.gz

mais je sais pas si au milieu j'aurais des fichiers ou une liste de noms ...
quelqu'un peut-il m'aider ?

1 réponse

Avatar
Pascal Bourguignon
"Sylvain LAROCHE" writes:

bonjour,

j'ai un petit souci avec une archive tar.gz, je souhaite en retirer un
répertoire !
pour des raisons techniques je souhaiterais :
- ne pas la refaire à partir des sources !
- ne pas avoir de fichier intermédiaire sur le disque ...

j'ai pensé à une ligne de commande du style :
gunzip < FILE.tar.gz | tar xvf - | <find ou grep> | tar cvf - - | gzip -c >
FILE2.tar.gz

mais je sais pas si au milieu j'aurais des fichiers ou une liste de noms ...
quelqu'un peut-il m'aider ?


Pour passer les fichiers dans le pipe, il faut GNU tar et utiliser -O
(--to-stdout). Alors, avec -v au millieu tu auras les deux, les noms
et les données. Autrement dit, la pagaille.

Sans passer par une extraction des fichiers dans le filesystem, ce
n'est pas possible. En plus si on voulait bricoler avec l'option -O,
on louperait les attributs du fichiers.


Peut être qu'une solution acceptable serait de désarchiver dans un RAM
disk: ainsi pas de fichier intermédiaire sur le disque!

--
__Pascal Bourguignon__ http://www.informatimago.com/

ADVISORY: There is an extremely small but nonzero chance that,
through a process known as "tunneling," this product may
spontaneously disappear from its present location and reappear at
any random place in the universe, including your neighbor's
domicile. The manufacturer will not be responsible for any damages
or inconveniences that may result.