Tar descompacta pasta, como mudar seu nome?

1

Estou criando um script que baixa o driver do mongo c:

wget -O mongo.tar.gz https://... \
    && tar -xzvf mongo.tar.gz \
    && cd mongo \
    && ...

No entanto, ele falha na parte cd mongo porque o nome da pasta real ao descompactar o tar é mongo-c-driver-1.7.0 . Eu não posso confiar neste nome. Como modificá-lo sem saber como o nome vai parecer lile?

    
por Guerlando OCs 08.09.2017 / 03:53

1 resposta

3

Você pode aplicar um comando sed para transformar o nome. De man tar

 --transform, --xform EXPRESSION
       use sed replace EXPRESSION to transform file names

Então:

wget -O - https://... |
    tar -xzv --transform 's:^[^/]*:mongo:'

s:^[^/]*:mongo: substitui tudo até o primeiro / com mongo . Você pode canalizar o arquivo diretamente para tar (por isso usei -O - em wget e descartei a opção -f no tar).

Alternativamente, você pode remover o primeiro componente e extrair em um diretório de sua escolha:

mkdir -p mongo && wget -O - https://... |
    tar -xzv --strip-components=1 -C mongo

Onde:

 --strip-components=NUMBER
       strip NUMBER leading components from file names on extraction
 -C, --directory DIR
       change to directory DIR
    
por muru 08.09.2017 / 04:01