Arquivo de pacote com tar.gz do diretório raiz


8

Eu tento compactar um arquivo .csv com tar.gz, enquanto estiver no diretório raiz.

O arquivo myfile.csvestá localizado em /mnt/sdb1/ Portanto, o nome do arquivo completo é/mnt/sdb1/myfile.csv

Eu tento salvar o tar.gz em /mnt/sdb1/old_files

Eu tentei assim:

tar -czf /mnt/sdb1/old_files/new.tar.gz mnt/sdb1/myfile.csv

Mas quando eu extraio o arquivo, uma pasta com o nome "mnt" será extraída e contém outra pasta chamada "sdb1", que contém o arquivo.

É possível compactar apenas o arquivo, em vez de copiar todos os diretórios?

Respostas:


12

use a --directoryopção de man tar:

-C, - DIR do diretório

mude para o diretório DIR

ou seja:

tar -C /mnt/sdb1/ -czf /mnt/sdb1/old_files/new.tar.gz myfile.csv

Obrigado Fiximan! Isso resolveu o problema. Vou votar assim que tiver 15 reputação.
Preto

3

Você precisa primeiro e cd /mnt/sdb1, em seguida, inicie o tarcomando.

Para sua informação, você não precisa usar taraqui, pois seu objetivo é aglomerar vários arquivos em um tarball. Como você tem apenas um arquivo aqui, basta usar gzip.


Eu sei, mas tenho que fazê-lo no diretório raiz, porque executo o comando a partir de um script.
Preto

1
Cara, basta adicionar o cdcomando antes tar, para que você possa voltar ou usar cd /mnt/sdb1 && tar -czf new.tar.gz myfile.csv && cd /se preferir um cmd de linha.
McSinyx

@McSinyx O problema é que o diretório não é salvo, mesmo quando eu executo cd /mnt/sdb1/, eu estarei no diretório raiz novamente na próxima execução de um comando. Mas sua segunda solução parece lógica para mim, eu tento.
Preto

@McSinyx NICE! Funciona :) Obrigado, isso será MUITO útil!
Preto

@ EdwardBlack Você pode executar um script de qualquer lugar, basta adicionar os caminhos absolutos relevantes. Em geral, o uso de caminhos relativos é uma má idéia, pois pode quebrar as coisas facilmente.
Dr_

1

Use a -Copção para tar:

   -C Directory
        Causes the tar command to perform a chdir subroutine to the
        directory specified by the Directory variable.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.