qual a diferença entre eles e qual eu devo usar?
As principais diferenças de um para o outro são no tempo e no tamanho final do arquivo. Nessas, o xz ganha.
Se eu estiver falando bobagem, alguém mais experiente me corrija. Mas, de modo geral, a diferença é apenas a qualidade de cada um emcomprimir. O gz, é compactado pelo gnuzip e é um formato mais antigo. O xz é um formato mais recente. A compactação, acho que fica a gosto do freguês, embora, atualmente, tenha visto a grande maioria dos arquivos em xz.
O que muda não é o comando “tar”, que apenas indica que tudo será compactado no arquivo que você está criando. Logo, o gz ou xz indica apenas a ferramenta que você está utilizando para compactar o arquivo. Podem ser outros formatos também, como rar, zip etc. Não sou entendido no assunto, mas se todo mundo tem utilizado o xz, deve existir um motivo para isso. Eu chutaria que ele deve ser mais eficiente. Embora não tenha pesquisado sobre isso.
O algoritimo de compressão o .gz usa Gzip e o .xz usa XZ
Segundo meus testes compactando o GIMP AppDir extraido:
tar.gz é mais rápido porém gera arquivos maiores, recomendo se o armazenamento não for um problema ou se a capacidade de processamento for baixa (e.g. RasberryPI, OrangePI…)
tar.xz é mais lento porém gera arquivos menores, recomendo se o armazenamento for um problema ou for transferir usando internet