Bash: usando redirecionamentos de ambos os sentidos em um shell script

1

Estou escrevendo um script de shell para compactar e fazer backup de determinados arquivos. Isso compactará e moverá arquivos grandes com tamanhos de até 4 GB.

Estou com problemas com esta linha:

    gzip < $filelocation > $backuplocation

Onde

  $filelocation = /home/user/image.img 

  $backuplocation = /home

E adicionarei uma linha semelhante para descompactar o arquivo

    gunzip < $filelocation > $backuplocation

Agora, isso não funciona por algum motivo.

eu tento         gunzip $ filelocation > $ backuplocation

Poderei canalizá-lo e mover o arquivo compactado para o diretório?

    
por Bruce Strafford 21.03.2015 / 15:55

1 resposta

4

Você não faz um backup com gzip em um diretório, mas em um arquivo diferente:

 gzip < file.in > file.out

ou no seu caso:

 filelocation=/home/user/image.img
 backuplocation=/home/image.img.gz
 gzip < "$filelocation" > "$backuplocation"

com base naquilo que você pode fazer:

 gunzip < "$backuplocation" > /some/new/location/image.img
    
por 21.03.2015 / 16:02