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!