Como faço para descompactar vários arquivos da fita?

1

Eu tenho uma fita com vários arquivos tar nela. Eu não sei quantos (foi criado por terceiros e enviado para mim com informações mínimas). Como faço para descompactar todos os arquivos sem ter que repetir o comando tar -xvf / dev / st2 100 vezes. Eu preciso repetir isso por 45 fitas, cada uma com possivelmente 100 arquivos

    
por Anu 30.10.2012 / 21:43

1 resposta

2

Se a unidade de fita tiver uma interface sem retrocesso, você poderá usar um loop para extrair um arquivo após o outro.

Exemplos típicos de nome da unidade de fita são: /dev/rst2 para acesso bruto a uma cassete SCSI rebobinada e /dev/nrst2 ou /dev/tape/nrst2 para o mesmo dispositivo sem rebobinar ( não retroceder)

Isso pode ser combinado com o código de saída do tar. Como todo código de saída do programa unix 0 significa "sucesso, sem problemas".

Você pode usar um forro um tanto feio em um shell:
while (! tar -xf /dev/nst0 ) echo "Another file done. Repeating for the next one!"

Ou escreva um programa um pouco mais limpo:

#!/usr/bin/env bash
return_value=0
counter=$1
while [ return_value -eq 0 ]
do
   echo starting on file number $1
   return_value=$(( tar -xf /dev/nst0 ))
   echo file nu,ber $1 extracted from tape.
   counter=$(( $counter + 1 ))
done
echo Reached end of tape or tar returned an error.
echo exiting.

Script não testado!

    
por 12.09.2013 / 21:57

Tags