pesquisa e arquivos zip?

1
$ ls -lrt *.extract.sys 
-rw-r--r--   1 sftwrk01   test       1729455 Dec 01 21:21 ar.ARAB-PI_3.20101231.extract.sys
-rw-r--r--   1 sftwrk01   test       1684929 Dec 30 21:21 ar.ARAB-PI_5.20101231.extract.sys
-rw-r--r--   1 sftwrk01   test       1696332 Dec 30 21:21 ar.ARAB-PI_1.20101231.extract.sys
-rw-r--r--   1 sftwrk01   test       1726197 Dec 30 21:21 ar.ARAB-PI_7.20101231.extract.sys
-rw-r--r--   1 sftwrk01   test       1692531 Dec 03 21:21 ar.ARAB-PI_2.20101231.extract.sys
-rw-r--r--   1 sftwrk01   test       1606737 Dec 30 21:21 ar.ARAB-PI_0.20101231.extract.sys
-rw-r--r--   1 sftwrk01   test       1803846 Dec 30 21:21 ar.ARAB-PI_8.20101231.extract.sys
-rw-r--r--   1 sftwrk01   test       1689816 Jan 30 21:21 ar.ARAB-PI_9.20101231.extract.sys
-rw-r--r--   1 sftwrk01   test       1724025 Jan 30 21:21 ar.ARAB-PI_6.20101231.extract.sys
....

Eu preciso compactar os arquivos no mês de dezembro.

Até agora eu tentei abaixo e não funcionou

$ ls -lrt *.extract.sys | grep Dec | gzip            
gzip: compressed data not written to a terminal. Use -f to force compression.
For help, type: gzip -h

Por favor ajude

    
por munish 29.05.2011 / 11:21

2 respostas

1

Supondo que você queira compactar o conteúdo real do arquivo e não apenas a listagem, é necessário fazer um arquivo tar antes de compactar com o GZip. Além disso, o uso de find pode ser mais confiável do que a saída do grepping ls.

Primeiro, crie arquivos de marcadores com datas que representem o início e o final de dezembro, encontre todos os arquivos com tempos de modificação entre esses dois arquivos e use xargs com tar para empacotá-los e enviá-los para o GZip. Veja como isso é feito:

  touch -t 201012010000 start
  touch -t 201101010000 end
  find . -iname \*.extract.sys -newer start \! -newer end -print0 | xargs -0 tar czvf dec.tar.gz
  rm start
  rm end

Verifique se não há arquivos importantes chamados "start" e "end" no diretório! Em caso afirmativo, use outros nomes ou coloque os arquivos do marcador, por exemplo, em / tmp.

Observe também que todos os subdiretórios com nomes correspondentes a "* .extract.sys" serão compactados também. Se isso não for desejado, adicione esses sinalizadores para localizar: -tipo f -depth 1

    
por 29.05.2011 / 11:41
1

Você está tentando compactar nomes de arquivos em vez de arquivos. Não envie o gzip para os nomes dos arquivos em stdin, envie-os como argumentos.

    
por 29.05.2011 / 11:27

Tags