tar uma pasta com um caminho e armazená-lo dentro de outra pasta

0

Estou tentando finalizar um pequeno projeto bash e fiquei preso ao tentar colocar uma pasta em um caminho. Por exemplo, o programa recebe a rota /home/folderx . Em seguida, ele procura por todas as pastas dentro desse diretório com um for i in ~/folderx/*; do... loop. E aqui está o problema: Eu estou tentando tar todas as pastas dentro dessa rota com tar -czvf $i.tgz $i -P , mas comprimir toda a rota que foi dada ao programa. No final, eu obtenho um .tgz com o nome correto (o nome do diretório que eu queria tar) mas dentro dele há /home/folderx/name_of_the_folder/contents ao invés de apenas name_of_the_folder contents.

Qual é o problema? Muito obrigado.

    
por Erwol 09.03.2016 / 19:58

2 respostas

0

você precisa estar no diretório que precisa fazer o tar.

Em for i in ~/folderx/*; do... loop do

cd $i
tar -czvf $i.tgz . -P
cd -

Isso funciona para mim.

    
por 09.03.2016 / 20:33
0

Primeiro, crie o arquivo e execute o comando.

Por exemplo:

destination__folder = "name_of_folder.tgz"

tar czvf $path/to/destination_folder $i

No exemplo acima, $i é o que você já está usando em seu script.

    
por 09.03.2016 / 20:25

Tags