Você pode tentar seguir:
tar -czf ./zips/someFile.tar.gz -C ./tmp/ someFolder
Eu tenho as seguintes pastas em uma máquina linux
./myFolder
./tmp
./packages
./zips
compress.sh
Eu corro tar -czf ./zips/someFile.tar.gz ./tmp/someFolder de compress.sh . A pasta é criada, mas o aninhamento resultante ocorre dentro do arquivo zip:
. -> tmp -> someFolder
Como posso compactar esse arquivo para que, quando eu abri-lo, seja apenas someFolder e não someFolder dentro de tmp , dentro de . ?
Você pode usar o parâmetro -C ou --directory
tar -czf ./zips/someFile.tar.gz -C ./tmp someFolder
De man tar
-C, --directory DIR
change to directory DIR
Exemplo
% ls -og
total 4
-rw-rw-r-- 1 0 Mai 21 18:39 bar
drwxrwxr-x 2 4096 Mai 21 18:39 foo
tar -cvf ../sample.tar -C /home/user/tmp .
tar -tvf ../sample.tar
drwxrwxr-x user/user 0 2015-05-21 18:39 ./
-rw-rw-r-- user/user 0 2015-05-21 18:39 ./bar
drwxrwxr-x user/user 0 2015-05-21 18:39 ./foo/
O comando tar não zip. Nem mesmo com o sinalizador -z . No entanto, ele coleta uma série de arquivos / pastas e, opcionalmente, compacta o resultado. Para contrastar, zip comprime cada arquivo e o adiciona a um arquivo. zip e tar usam algoritmos de compactação diferentes.
A página man do tar mostra o -C flag ( --directory ) para alterar o diretório, então você poderia fazer isso
tar czfC zips/someFile.tar.gz tmp someFolder
Você também pode usar a opção --transform para remover a% principaltmp/
tar czf zips/someFile.tar --transform 's#^tmp/##' tmp/someFolder