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
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?
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
.
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.
Tags gzip