Shell Script : Find Files Older X Days And Ask User To Delete

April 5, 2013 | By
| Reply More

Script that find files older X days and ask user to delete them. Useful for administrator, if needed quickly find old files and delete required files. Script will interactively ask user before deleting the older files.

more shell scripts

Shell Script

#!/bin/bash

#we check for parameters
#Directory is requirede parameter, to avoid deleting from any other folders

if [ $# -eq 0 ]; then

echo "`basename $0` "

echo "Script will delete file folders older than inside "

echo "If no days inputed, will use 7 days as default"

fi

#We save variables
DIR=$1

#check if user input days
if [ x"$2" = "x" ]; then

#if user didn't input days, we will use default value
DAYS="7"

else

DAYS="$2"

fi

#this will create list of folders older that X days. We use command find to find them, and set maxdepth
# to 1, we don't need recursively find all folders
dirlist=`find $DIR -maxdepth 1 -type d -mtime +$DAYS`

#now we will process each folder
for dir in ${dirlist}

do

#this will check if user have read and write permissions
if [ ! -r ${dir} -o ! -w ${dir} ]; then

#if no permissions just warn, without try to delete
echo "Access denied to folder ${dir}"

else

#if we have permissions – we ask user if really delete
read -p "Delete folder ${dir} and all subfolders? [y/n]" confirm

#check if user confirm deleting
if [ "$confirm" = "y" ]; then

#if user confirm – rm command to delete
rm -rf ${dir}

fi

fi

done

#same as with directories we do with files
#we get list
filelist=`find $DIR -maxdepth 1 -type f -mtime +$DAYS`

#proceed with every file
for file in ${filelist}

do

#we check permissions
if [ ! -r "${file}" -o ! -w "${file}" ]; then

echo "Access denied to file ${file}"

else

#if we have permissions we ask about confirmation
read -p "Delete file ${file}? [y/n]" confirm

if [ "$confirm" = "y" ]; then

#if confirmed – we delete file.
rm -rf ${file}

fi

fi

done

Output

Server1:~/$ ./delete_xdays.sh /home/yevhen/Downloads 7

Delete folder /home/yevhen/Downloads/CENTOS and all subfolders? [y/n]n

Delete folder /home/yevhen/Downloads/TFTP and all subfolders? [y/n]y

Delete file /home/yevhen/Downloads/Oracle_Solaris_Studio.certificate.pem? [y/n]^C

Server1:~/$ ./delete_xdays.sh /home/yevhen/Downloads 7

Delete folder /home/yevhen/Downloads/CENTOS and all subfolders? [y/n]n

Delete file /home/yevhen/Downloads/Oracle_Solaris_Studio.certificate.pem? [y/n]n

Delete file /home/yevhen/Downloads/sol-11_1-text-x86.iso? [y/n]^C

Filed Under : SHELL SCRIPTS

Free Linux Ebook to Download

Leave a Reply

Commenting Policy:
Promotion of your products ? Comment gets deleted.
All comments are subject to moderation.