Para evitar que dir1 apareça no arquivo, você pode executar tar dentro dele; e para evitar . como o elemento principal dos caminhos armazenados, não o nomeie. Existem duas maneiras de fazer isso:
cd dir1
tar cvfJ ../archive.tar.xz dir2 .hiddenFile
ou
tar cvfJ archive.tar.xz -C dir1 dir2 .hiddenFile
( sem o cd - -C diz ao tar para alterar os próprios diretórios, quando ele for lido, então archive.tar.xz é criado no diretório atual, mas dir2 e .hiddenFile são relativos a dir1 ).
Isso produz um arquivo contendo
dir2/
.hiddenFile
(juntamente com o conteúdo de dir2 ’).