blob: c639db1daf5e761d27be36f631f09f976f8f086b (
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
##
## Part of configuration files for Zsh4
## AUTHOR: Hugues Hiegel <hugues@hiegel.fr>
##
## You are encouraged to use, modify, and redistribute
## these files with or without this notice.
##
## NO WARRANTY PROVIDED, USE AT YOUR OWN RISKS
##
TRASH=$ZDOTDIR/.trash
delete ()
{
local element real_element
for element in $@
do
real_element=$(readlink -f $(dirname $element))/$(basename $element)
if [ -e $real_element ]
then
echo "Deleting $element..."
if [ ! -d $real_element ]
then
mkdir -p $TRASH${real_element:h}
else
mkdir -p $TRASH$real_element
fi
mv $element $TRASH$real_element
else
echo "Skipping unknown '$element' ..."
fi
done
}
lsdel ()
{
local LS_OPTS __ARG
while [ $# -gt 0 ]
do
typeset -A __ARG
__ARG=$1
shift
[ $__ARG == "--" ] && break
if [ $__ARG[1] == "-" ]
then
LS_OPTS="$LS_OPTS $__ARG"
else
set -- ${@:-"--"} $__ARG
fi
done
for element in ${@:-.}
do
element=$(readlink -f $element)
[ ! -d $element ] && element_dir=${element:h} || element_dir=$element
if [ -e $TRASH$element ]
then
echo "Deleted from $element_dir:"
ls ${=LS_OPTS} $TRASH$element | sed "s'$TRASH$element_dir/''"
else
echo "Nothing found in trash for '$element'."
fi
done
}
undel ()
{
for element in $@
do
if [ -e ~trash/$element ]
then
echo "Getting back $element..."
mkdir -p ${element:h}
mv ~trash/$element .
rmdir --ignore-fail-on-non-empty -p ~trash 2>&-
else
echo "Not found in trash: $element"
fi
done
}
alias lldel='lsdel -l'
alias ldel='lsdel -lh'
|