Como posso combinar o comando find com o gzip?

0

Estou tentando compactar arquivos específicos:

find /media/mount/storage -newermt "2013-08-01 00:00:00" -path '*/*wind.txt' -print0 | xargs -0 gzip -l >> file_system.tar.gz

mas estou recebendo o seguinte erro:

gzip: /media/mount/storage/20130811120802_RHI1/20130811121000_wind.txt: not in gzip format

Onde eu cometo o erro?

EDITADO: com a resposta escrita por chronitis às vezes o tar é recriado, esta é a saída:

 /media/mount/storage/File system/20130505082135_CT1/20130505090000_wind.txt
 /media/mount/storage/File system/20130505085301_CT1/20130505090000_wind.txt
 tar: Removing leading '/' from member names <- the size of the tar became zero
 /media/mount/storageFile system/20130505085301_CT1/20130505091000_wind.txt
 /media/mount/storageFile system/20130505085301_CT1/20130505092000_wind.txt
    
por OHLÁLÁ 03.02.2014 / 16:22

1 resposta

2

Estou assumindo que o que você quer fazer é criar um arquivo tar gzipado contendo todos os arquivos que o comando find localiza (em vez de separar separadamente cada um desses arquivos).

Existem vários problemas com o comando acima:

  • gzip -l aceita um arquivo existente e imprime o conteúdo
  • gzip por si só não produz arquivos tar (um contêiner para vários arquivos), mas apenas compacta cada arquivo individualmente

O que você provavelmente quer é algo como:

find [conditions] -print0 | xargs -0 tar -zcf filesystem.tar.gz
    
por chronitis 03.02.2014 / 16:34