Estou usando este comando em um5 GBarquivo
tar -zxvf archive.tar.gz /folder/in/archive
esta é a maneira correta de fazer isso? Parece estar demorando uma eternidade sem saída de linha de comando ...
Responder1
tar
armazena caminhos relativospor padrão. GNU tar diz isso mesmo se você tentar armazenar um caminho absoluto:
tar -cf foo.tar /home/foo
tar: Removing leading `/' from member names
Se você precisar extrair uma pasta específica, dê uma olhada no que está no arquivo tar:
tar -tvf foo.tar
E observe o nome exato do arquivo. No caso do meu foo.tar
arquivo, eu poderia extrair /home/foo/bar
dizendo:
tar -xvf foo.tar home/foo/bar # Note: no leading slash
Então não, a maneira como você postou não é (necessariamente) a maneira correta de fazer isso. Você tem que deixar de fora a barra inicial. Se você quiser simular caminhos absolutos, faça cd /
primeiro e certifique-se de ser o superusuário. Além disso, isso faz o mesmo:
tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option
Existem boas razões muito óbvias para tar
converter caminhos em caminhos relativos. Uma delas é a capacidade de restaurar um arquivo em locais diferentes de sua fonte original. A outra é a segurança. Você pode extrair um arquivo, esperar que seus arquivos apareçam em seu diretório de trabalho atual e, em vez disso, sobrescrever os arquivos do sistema (ou seu próprio trabalho) em outro lugar por engano.
Nota: se você usar a -P
opção,tar
vaiarquivar caminhos absolutos. Portanto, sempre vale a pena verificar o conteúdo de grandes arquivos antes de extraí-los.