Advertisement
Guest User

Untitled

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