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.
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.
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.
Tags tar