Je crée un script qui télécharge le pilote mongo c:
wget -O mongo.tar.gz https://... \
&& tar -xzvf mongo.tar.gz \
&& cd mongo \
&& ...
Cependant, il échoue dans le cd mongo
partie car le nom réel du dossier lorsque je décompresse le goudron est mongo-c-driver-1.7.0
. Je ne peux pas compter sur ce nom. Comment le modifier sans savoir à quoi ressemblera le nom?
Vous pouvez appliquer une commande sed pour transformer le nom. De man tar
--transform, --xform EXPRESSION
use sed replace EXPRESSION to transform file names
Donc:
wget -O - https://... |
tar -xzv --transform 's:^[^/]*:mongo:'
s:^[^/]*:mongo:
remplace tout jusqu'au premier /
avec mongo
. Vous pouvez diriger le fichier directement vers tar
(d'où j'ai utilisé -O -
dans wget et a supprimé le -f
option dans tar).
Alternativement, vous pouvez élaguer le premier composant et extraire dans un répertoire de votre choix:
mkdir -p mongo && wget -O - https://... |
tar -xzv --strip-components=1 -C mongo
Où:
--strip-components=NUMBER
strip NUMBER leading components from file names on extraction
-C, --directory DIR
change to directory DIR