Я стал агрессивным и убил процесс tar, как только он нашел два файла. Вот мое решение
file=list.txt
while read line;do
tar --wildcards --checkpoint=10000 --checkpoint-action=exec='sh stop.sh dummy.txt 1' -xzvf ny_file.tar.gz "$line" > dummy.txt
done <$file
, где stop.sh проверяет, содержит ли dummy.txt более двух строк, и завершает процесс.
n=$(wc -l < $1)
if [ $n -gt 1 ];then
kill $(ps aux|grep "[t]ar --wildcards*" | cut -d " " -f 4)
fi
Мне пришлось использовать cut для восстановления процесса идентификации, потому что одиночные кавычки для awk беспокоили