summaryrefslogtreecommitdiff
path: root/miscripts/rshred.txt
blob: 99d67082f4c71701bc1431ede5ce9241a6192ded (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/bash

NOTIFY="console"
DELETE=""
SHRED_OPTIONS=""
FILES=()

while [ -n "${1}" ]; do
  case "${1}" in

    "--zenity" )
      NOTIFY="zenity"
    ;;

    "-q" | "--quiet" )
      NOTIFY=""
    ;;

    "-u" | "--remove" )
      SHRED_OPTIONS="${SHRED_OPTIONS} ${1}"
      DELETE="true"
    ;;

    "-n" | "-s" )
      SHRED_OPTIONS="${SHRED_OPTIONS} ${1} ${2}"
      shift
    ;;

    "--")
        shift
        while [[ -n "${1}" ]]; do
            [[ -e "${1}" ]] && FILES=( "${FILES[@]}" "${1}" )
            shift
        done
        break
    ;;

    -* )
      SHRED_OPTIONS="${SHRED_OPTIONS} ${1}"
    ;;

    * )
      #FILES[${#FILES[*]}]="${1}"
      if [ -e "${1}" ]; then
        FILES=( "${FILES[@]}" "${1}" )
      fi
    ;;

  esac

  shift

done

for F in "${FILES[@]}"; do
    [[ -e "${F}" ]] || continue
    if [ -d "${F}" ]; then
        find "${F}" -type f -exec shred ${SHRED_OPTIONS} {} +
        [[ "${DELETE}" = "true" ]] && rm -r "${F}"
    else
        shred ${SHRED_OPTIONS} "${F}"
    fi
done

exit 0