Untarring em um diretório temp e, em seguida, excluindo o diretório

0

Sou um usuário Linux muito novo e estou descompactando um tarball em um diretório, diga isso sem sorrir .

O que eu quero fazer é criar um diretório temporário com o comando mktemp -d e usar o comando tar para descompactar o tarball no diretório temporário, então eu quero excluir o diretório (eu tenho certeza que tenho uma ideia de como eu vou fazer isso.

O que eu tenho até agora é isso ...

tar -xvzf UW_archive_example.tgz home/common/4000_UW_spreadsheets/example.ods

Isso funciona e com sucesso descompacta o arquivo, como eu implementaria mktemp -d com o comando tar para que ele desarritasse o arquivo no diretório temporário?

Suponha que eu não possa baixar nada e só tenha acesso de leitura no diretório que eu quero criar o temp.

    
por 13aal 23.12.2015 / 13:19

2 respostas

2

você pode fazer isso:

tar -C 'mktemp -d' -xvf foo.tar

Que extrai foo.tar em um diretório temporário, mas isso é tecnicamente correto porque não informa onde o diretório está.

uma abordagem de duas linhas seria:

NEW_TMP_DIR='mktemp -d'
tar -C $NEW_TMP_DIR -xvf foo.tar

e se você quiser encadeá-los, você pode com & & para fazer um forro e garantir que o diretório foi criado:

NEW_TMP_DIR='mktemp -d' && tar -C $NEW_TMP_DIR -xvf foo.tar
    
por 23.12.2015 / 20:43
1

mktmp -d --tmpdir = / caminho / para / untar / dir & & tar C / caminho / para / untar / dir -xvzf UW_archive_example.tar home / common / 4000_UW_spreadsheets / example.ods

O mktmp cria seu diretório temporário no caminho de sua escolha. Tar's -C dá o diretório para untar. O '& &' garante que o tar só será executado se o comando mktmp for bem-sucedido. Você pode testar isso com um diretório para o qual você tem acesso de gravação antes de entregá-lo àqueles que terão acesso ao diretório de destino final.

    
por 23.12.2015 / 18:46