Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1 #/bin/bash
- 2
- 3 function directory(){
- 4 if [ ! -d ~/deleted }
- 5 then
- 6 mkdir ~/deleted
- 7 fi
- 8 if [ ! -f ~/.restore.info ]
- 9 then
- 10 touch ~/.restore.info
- 11 fi
- 12 }
- 13
- 14 function movefile(){
- 15 mv $1 ~/deleted/$1
- 16 echo "file moved to recycle bin"
- 17 }
- 18
- 19 function error_conditions(){
- 20 #prints error messages and checks if file is in project directory
- 21 if [ ! -f ~/project ]
- 22 then
- 23 echo "cannot remove $filename: no such file or directory"
- 24 elif [ -d ~/project ]
- 25 then
- 26 echo "cannot remove $filename: is a directory"
- 27 else
- 28 echo "missing operand"
- 29 fi
- 30 }
- 31
- 32 function delete_file(){
- 33 #gets inode for filename
- 34 inode=$(stat -c%i $filename)
- 35 filename=$1
- 36 pwd=$(readlink -e$filename)
- 37 if $interactive
- 38 then
- 39 if [ $verbose = true ];
- 40 read -p "Are you sure you want to delete $filename?" i_input
- 41 if [ $i_input == "y" ] || [ $i_input == "Y" }
- 42 then
- 43 mv $filename ~/delete/${filename}_inode
- 44 echo ${filename}_$inode:$pwd>>~/.restore.info
- 45 echo "$filename has been deleted"
- 46 else
- 47 echo "Nothing has been deleted"
- 48 fi
- 49 else
- 50 read -p "Are you sure you want to delete $filename?" i_input
- 51 if [$i_input == "y" ] || [ $i_input == "Y" ];
- 52 then
- 53 mv $filename ~/deleted/${filename}_$inode
- 54 echo ${filename}_$inode:$pwd>>~/.restore.info
- 55 else
- 56 echo Aborted
- 57 fi
- 58 fi
- 59 elif $verbose
- 60 then
- 61 mv $filename ~/deleted/${filename}_inode
- 62 echo ${filename}_$inode:$inode:pwd>>~/.restore.info
- 63 echo "$filename has been deleted."
- 64 else
- 65 mv $filename ~/deleted/${filename}_$inode
- 66 echo ${filename}_$inode:$pwd>>~/.restore.info
- 67 echo Executed
- 68 fi
- 69 }
- 70 interactive=false
- 71 verbose=false
- 72 recursive=false
- 73 while getopts iv option
- 74 do
- 75 case $option in
- 76 i) interactive=true;;
- 77 v) verbose=true;;
- 78 esac
- 79 done
- 80 shift $[OPTIND-1]
- 81 for i in $*
- 82 do
- 83 filename=$i
- 84 baseline=$(basename $i)
- 85 if [ "$i" == "" ];
- 86 then
- 87 echo "No filename provided"
- 88 elif [ -d $filename ];
- 89 then
- 90 if [ ! $recursive = true ];
- 91 then
- 92 echo "Directory name provided, please provide a file"
- 93 fi
- 94 elif [ ! -f $filename ];
- 95 then
- 96 echo "File does not exist"
- 97 elif [ "$basefule" == "safe_rm" ]
- 98 then
- 99 echo "Attempting to delete safe_rm"
- 100 else
- 101 delete_file $filename
- 102 fi
- 103 done
- 104
- 105 #################################M A I N###############################
- 106 directory
- 107 error_conditions $*
- 108 delete_file $*
- 109 move_file $r
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement