slackware/slackware64-15.0/slackware64/buildlist.sh

61 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
#
# USE AT YOUR OWN RISK!!!!!
#
# buildlist.sh
#
# Builds a recursive directory list file like the FILELIST.TXT that ships
# with Slackware Linux.
#
# Usage:
# Run ./buildlist.sh path/to/directory
# or ./buildlist.sh /path/to/directory /path/to/listfile
# listfile being the name of the new file that will be created, of course.
LISTFILE=FILE_LIST # Default listfile
CHECKFILE=CHECKSUMS.md5
# Uncomment one or the other, but not both
#SIZEOP=h # Use human readable sizes vs bytes (ie MB/KB)
SIZEOP="" # Use bytes for sizes
if test "$1" == ""; then
echo "Usage: $0 directory listfile(optional)"
exit
else
if test ! -d $1; then
echo "Error: $1 - No such directory..."
exit
fi;
fi;
if test "$2" != ""; then
LISTFILE=$2
fi;
echo "Building \"${LISTFILE}\" from \"$1\""
date > ${LISTFILE}
cat <<- EOF >> ${LISTFILE}
Directory listing of $1
EOF
find ${1} -exec ls -dl${SIZEOP} --full-time {} \; \
| awk '{ printf("%10s %2s %4s %4s %8s %10s %-5.5s %s\n",$1,$2,$3,$4,$5,$6,$7,$9) }' > templist.txt
if [ -f ${LISTFILE} ]; then
rm -f ${LISTFILE}
fi
sort +7d templist.txt >> ${LISTFILE}
rm templist.txt
sed -i '/templist.txt/d' ${LISTFILE}
sed -i '/buildlist.sh/d' ${LISTFILE}
if [ -f ${CHECKFILE} ]; then
rm -f ${CHECKFILE}
fi
find ${1} -exec md5sum {} \; >> ${CHECKFILE}
echo "Done!"