Я - crerating сценарий, который загружает монго c драйвер:
wget -O mongo.tar.gz https://... \
&& tar -xzvf mongo.tar.gz \
&& cd mongo \
&& ...
Однако это перестало работать в cd mongo
часть, потому что фактическое имя папки, когда я распаковываю tar, mongo-c-driver-1.7.0
. Я не могу полагаться на это имя. Как изменить его, не зная, как имя собирается посмотреть lile?
Можно применить команду sed для преобразования имени. От man tar
--transform, --xform EXPRESSION
use sed replace EXPRESSION to transform file names
Так:
wget -O - https://... |
tar -xzv --transform 's:^[^/]*:mongo:'
s:^[^/]*:mongo:
замены все до первого /
с mongo
. Можно передать файл по каналу непосредственно к tar
(следовательно я использовал -O -
в wget, и отброшенный -f
опция в tar).
С другой стороны, можно сократить первый компонент и извлечение в каталоге по Вашему выбору:
mkdir -p mongo && wget -O - https://... |
tar -xzv --strip-components=1 -C mongo
Где:
--strip-components=NUMBER
strip NUMBER leading components from file names on extraction
-C, --directory DIR
change to directory DIR