Pasta com o nome “.” em um arquivo gzipado

1

Eu criei uma instalação mínima do Ubuntu em uma VM do VirtualBox. Então, decidi arquivá-lo para poder compartilhá-lo com os amigos. Estou permitindo que eles o usem para que possam experimentar comandos do Linux.

Eu arquivei usando o comando

tar -zcvf ./Hackcraft.tar.gz ./Hackcraft

O processo de arquivamento funcionou bem. No entanto, quando abri o arquivo no FileRoller, notei que o primeiro diretório visível é "." sem aspas. Quando eu cliquei duas vezes no diretório para olhar dentro dele, vi minha pasta do Hackcraft, que foi arquivada. Nele estavam todos os meus arquivos.

A questão é, por que a pasta de nível superior? Eu sei que é usado, por exemplo, quando cd'ing em um terminal, para denotar a pasta atual. Mas por que isso está aí?

    
por Computer Looker 06.12.2016 / 00:14

2 respostas

2

O comando que você deu cria um tarball com caminhos começando com ./Hackcraft ; você pode ver isso executando

tar tf Hackcraft.tar.gz

File Roller apresenta o conteúdo da pasta tarball por pasta, dividindo em / , o que resulta em mostrar uma pasta raiz chamada . , contendo uma pasta chamada Hackcraft .

(O tarball em si não contém uma entrada . .)

    
por 06.12.2016 / 04:22
0

Quando um tar archive possui uma entrada para ./ , ele é usado para registrar a propriedade e as permissões do diretório atual. Assim, quando você descompactá-lo, a propriedade e as permissões do diretório atual podem ser alteradas.

Dito isso, o comando que você deu não deve resultar em um tar archive com um membro ./ . É possível que FileRoller esteja implicitamente retirando o diretório de nível superior.

    
por 06.12.2016 / 00:23