49 lines
1.3 KiB
Bash
49 lines
1.3 KiB
Bash
#!/bin/bash
|
|
|
|
# Before deleting a file ensure that
|
|
|
|
# 1. The filename has the right FORMAT
|
|
# 2. The file is a TYPE of compressed file
|
|
# 3. The file has an EXTENSION of compresed file
|
|
|
|
[ ${#} -ne 2 ] && echo "safedelete.sh: Some Argument is missing" && exit
|
|
[ ! -f ${1} ] && echo "safedelete.sh: Argument is not a file: ${1}" && exit
|
|
[ ${2} -gt 3600 ] && echo "safedelete.sh: Waiting time is more that one hour" && exit
|
|
|
|
#
|
|
# 1. Check the filename FORMAT
|
|
#
|
|
FORMAT=$(basename ${1} | grep -E "^[a-zA-Z0-9]{32}-.*\.(zip|gz|7zip|tar|tar\.gz|tar\.bz2)$" )
|
|
if [ "${FORMAT}" != "" ];then
|
|
|
|
#
|
|
# 2. Check the file TYPE
|
|
#
|
|
TYPE=$(file --mime-type ${1} | awk '{print $2}' | awk -F/ '{print $2}' )
|
|
if [ "${TYPE}" == "zip" ] ||
|
|
[ "${TYPE}" == "x-tar" ] ||
|
|
[ "${TYPE}" == "x-bz2" ] ||
|
|
[ "${TYPE}" == "gzip" ] ||
|
|
[ "${TYPE}" == "7zip" ];then
|
|
|
|
#
|
|
# 3. Check the file EXTENSION
|
|
#
|
|
EXTENSION=$(echo ${1} | awk -F\. '{print $NF}')
|
|
if [ "${EXTENSION}" == "zip" ] ||
|
|
[ "${EXTENSION}" == "tar" ] ||
|
|
[ "${EXTENSION}" == "bz2" ] ||
|
|
[ "${EXTENSION}" == "gz" ] ||
|
|
[ "${EXTENSION}" == "7zip" ];then
|
|
sleep ${2} && rm -f "${1}"
|
|
else
|
|
echo "Wrong file extension" && exit
|
|
fi
|
|
else
|
|
echo "Wrong file type" && exit
|
|
fi
|
|
else
|
|
echo "Wrong filename format" && exit
|
|
fi
|
|
|