Arquivo tar.gz de tamanho zero encontrado dentro de um arquivo tar.gz

0

Meu diretório atual contém um único arquivo como este -

$ls -l
-rw-r--r--    1 root     staff             8 May 28 09:10 pavan

Agora, quero tar e compactar esse arquivo como

$tar -cvf - *  2>/dev/null |gzip -vf9 > pavan.tar.gz 2>/dev/null

(Estou ciente de que estou criando o arquivo compactado no mesmo diretório do arquivo original)

Quando executo os comandos tar / gzip acima em torno de 20 vezes, algumas vezes observo que o último arquivo compactado e compactado pavan.tar.gz tem um arquivo pavan.tar.gz com tamanho ZERO. Eu não tenho certeza de onde este arquivo de tamanho zero está vindo do arquivo.

Nota : Eu NÃO estou executando comandos tar / gzip em um arquivo tar.gz já existente. Eu sempre me certifico de que o diretório tenha apenas um arquivo antes de executar os comandos No googling, como descrito aqui , eu suspeitava que o tar.gz sendo criado também fazia parte o arquivo que está sendo arquivado. Mas no meu caso, gzip é quem está criando o arquivo final e no momento em que gzip é executado, tar deve ser feito com o tarring.

Isso está acontecendo no AIX, mas também usei a tag do Linux para chamar mais a atenção, pois acho que o problema é independente da plataforma.

    
por Pavan Manjunath 28.05.2014 / 16:35

3 respostas

1

Você está digitando um comando "canalizado". Seu interpretador (bash etc.) cria um pipe e executa dois comandos (gera 2 processos - tar & gzip). Neste procedimento, bash forks várias vezes e será indefinido se o arquivo de destino pavan.tar.gz for criado antes ou depois da * expansão no comando tar .

    
por 28.05.2014 / 17:04
0

Se você tem apenas um arquivo e está preocupado porque pode mudar com o tempo, você pode usar simplesmente

cat pavan | gzip -f9 > pavan.gz 

Comentário adicional:

Se você trabalha com bash , pode tentar negar uma seleção então com !(pavan.tar.gz) você selecionará todos os arquivos, mas pavan.tar.gz

 tar -zcf pavan.tar.gz !(pavan.tar.gz)  

eventualmente com --ignore-command-error

    
por 28.05.2014 / 18:44
-1

Eu não entendo porque você usa -v e depois redireciona para dev / null? remova o -v e dev / null como:

tar -cf - * | gzip -f9 > pavan.tar.gz

Você não verá nada na tela.

    
por 11.06.2014 / 02:43