#!/bin/bash # NOTE this is adapted from an old version from original cubietruck! Mar 26 2014 flist # Go thru .tar.gz, .tar.bz2 in dir and list them to flist-file function process () { #set -x args="$*" echo $args # if doing rezip, renice bzip2 renice +1 `pidof bzip2` 2>/dev/null # Preserve existing output if [ -e "flist--$bn.txt" ]; then echo "o Skipped $bn" else echo "Processing $bn" if [ "$compr" = "" ]; then time tar tvf $i > flist--$bn.txt 2>flist-errors--$bn.txt else time $compr -cd $args |tar tvf - >flist--$bn.txt 2>flist-errors--$bn.txt fi fi } #function processbz2 () { # args=$* # echo $args # time tar tjvf $args > flist--$bn #} # If compare string not match any actual filename, move on for i in *.tar.gz; do [ "$i" == "*.tar.gz" ] && break; bn=`basename $i .tar.gz` compr=gzip process $i done for i in *.tar1.gz; do [ "$i" == "*.tar1.gz" ] && break; bn=`basename $i .tar1.gz` compr=gzip process $i done for i in *.tgz; do [ "$i" == "*.tgz" ] && break; bn=`basename $i .tgz` compr=gzip process $i done for i in *.tar.bz2; do [ "$i" == "*.tar.bz2" ] && break; bn=`basename $i .tar.bz2` compr=bzip2 process $i done for i in *.tar.lzop; do [ "$i" == "*.tar.lzop" ] && break; bn=`basename $i .tar.lzop` compr=lzop process $i done for i in *.tar1.lzop; do [ "$i" == "*.tar1.lzop" ] && break; bn=`basename $i .tar1.lzop` compr=lzop process $i done for i in *.tar; do [ "$i" == "*.tar" ] && break; bn=`basename $i .tar` compr="" process $i # time tar tvf $i > flist--$bn.txt done for i in *.tar1; do [ "$i" == "*.tar1" ] && break; bn=`basename $i .tar1` compr="" process $i # time tar tvf $i > flist--$bn.txt done # Cleanup find . -type f -name flist-errors\* -empty -print -delete