Tar diretório no arquivo com o mesmo nome do diretório?

1

Existe um elegante one-liner para tar / arquivar todo o diretório e deletá-lo depois? Até agora eu vim com soluções volumosas.

de:

# ls -la
drwxr-xr-x 3 root root 4096 Jul  4 15:01 .
drwxr-xr-x 6 root root 4096 Jul  4 14:54 ..
drwxr-xr-x 4 root root 4096 Jul  4 14:59 stresstest

para:

# ls -la
drwxr-xr-x 3 root root 4096 Jul  4 15:01 .
drwxr-xr-x 6 root root 4096 Jul  4 14:54 ..
drwxr-xr-x 4 root root 4096 Jul  4 14:59 stresstest.tar.gz

EDIT # 1

O problema é que eu não sei o nome do diretório com antecedência (ele é criado dinamicamente, então da próxima vez será diferente), mas sempre será o único diretório aqui.

    
por Eugene A 05.07.2018 / 11:04

2 respostas

2
$ for i in *;do tar zcvf ${i}.tgz $i; rm -fr $i;done

Exemplo

$ for i in *;do tar zcvf ${i}.tgz $i; rm -fr $i;done
stresstest/
stresstest/file1
stresstest/file2
stresstest/file3

$ ll
total 4
-rw-r--r-- 1 root root 162 Jul  5 05:18 stresstest.tgz
    
por 05.07.2018 / 11:12
0
(dir="stresstest"; tar zcvf ${dir}.tgz ${dir}; rm -rf $dir)
    
por 05.07.2018 / 12:19