Se você deseja que o arquivo seja extraído em seu próprio diretório - que geralmente é melhor, já que os que não podem fazer uma bagunça - apenas crie o diretório, então mova / copie a árvore de conteúdo para ele, assim você tem, como no seu segundo exemplo:
mycustomfolder/file1
mycustomfolder/folder2/hello
mycustomfolder/folder2/world
mycustomfolder/file3
Então tar -cvf myarchive.tar mycustomfolder
. Para extrair, tar -xvf myarchive.tar
.
Se você não quiser criar o diretório primeiro, poderá transformar os nomes dos arquivos e acrescentar um prefixo de diretório:
tar --xform="s%^%mycustomfolder/%" -cvf myarchive.tar file1 folder2 file3
A transformação (consulte man tar
) usa a sintaxe sed
; Eu usei %
em vez de /
para o divisor porque s/^/mycustomerfolder\//
cria uma pasta chamada mycustomfolder\
(== comportamento ímpar IMO), mas s/^/mycustomfolder//
é (propriamente) uma "expressão de transformação inválida".