ansitest/VIRTBOX/flist.sh

75 lines
1.6 KiB
Bash
Raw Normal View History

2021-04-11 00:19:56 -05:00
#!/bin/bash
# Go thru .tar.gz, .tar.bz2 in dir and list them to flist-file
# This generally lives in /usr/local/bin since non-root can call it
# DEPENDS: gzip, bzip2, lzop, tar
function process () {
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 "* Skipped $bn"
else
time $compr -cd $args |tar tvf - > flist--$bn.txt
fi
}
# 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
# TODO zstd
# 2014(?)-2021 Dave Bechtel