Gunzip no intervalo de arquivos

1

Estou executando uma longa cópia de arquivos .gz de um servidor para outro. Ao mesmo tempo, gostaria de descompactar os arquivos já copiados. Por exemplo, todos os nomes de arquivos que começam com a por meio de nomes de arquivos que começam com c .

Como posso fazer isso?

    
por FaMontyN2 05.02.2015 / 17:18

3 respostas

2

A maneira mais fácil de fazer isso é usar o seu shell. Assumindo um shell relativamente moderno (como bash), você pode fazer

gunzip [a-c]*gz
    
por 05.02.2015 / 17:24
2

Você quer dizer

for file in [a-c]*.gz; do gunzip "$file"; done

ou até gunzip [a-c]*.gz (obrigado por um lembrete @terdon).

Se você estiver fazendo isso apenas para reduzir o tráfego de rede, faria muito mais sentido apenas compactar o fluxo de conexão ou, melhor ainda, usar rsync .

    
por 05.02.2015 / 17:24
0

Você pode descompactar com segurança todos os arquivos que foram completamente copiados. Então a tarefa é determinar quais arquivos estão completos.

Vamos supor que o diretório esteja vazio antes do início da cópia e que os arquivos descompactados sejam gravados em um diretório diferente. Uma possibilidade para determinar quais arquivos estão prontos para descompactar é aguardar o próximo arquivo.

Se essa for uma abordagem relevante para você, posso fornecer um código para isso.

    
por 05.02.2015 / 17:31

Tags