如何从磁带解压缩多个存档?

我有一个带有多个tar文件的磁带。 我不知道有多less(这是由第三方创build,并以最less的信息发给我)。 如何解开所有文件,而不必重复执行tar -xvf / dev / st2命令100次。 我需要重复这45个磁带,每个可能有100个文件

如果磁带机具有非倒带接口,则可以使用循环来逐个提取一个文件。

磁带驱动器名称的典型示例是: /dev/rst2用于原始访问倒带SCSI tapedrive,而/dev/nrst2/dev/tape/nrst2用于同一设备而不倒带( 倒带)

这可以与tar的退出代码结合使用。 像所有的unix程序退出码0意味着“成功,没有问题”。

这可以在一个壳中使用一个有点丑陋的衬里:
while (! tar -xf /dev/nst0 ) echo "Another file done. Repeating for the next one!"

或写一个有点整洁的程序:

 #!/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. 

未经testing的脚本!