forked from Nokorot/dotbin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_trash.sh
57 lines (45 loc) · 1.09 KB
/
_trash.sh
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
TrashDir="$HOME/.local/share/Trash"
delPerm() {
for k in "$@"; do
rm -r "$TrashDir/files/$k"
rm -r "$TrashDir/info/$k.trashinfo"
done
}
empty() {
rm -r "$TrashDir/files/"*
rm -r "$TrashDir/info/"*
}
restore() {
path="$(getPath "$1")"
echo "Restoring: \"$file\""
echo " -> \"$path\""
mv -i "$TrashDir/files/$1" "$path"
rm "$TrashDir/info/$1.trashinfo"
}
sep='¤'
listFiles() {
ls "$TrashDir/files" | while read l; do
printf "%s $sep %s $sep (%s)\n" \
"$(getDate "$l")" \
"$l$([ -d "$TrashDir/files/$l" ] && printf "/")" \
"$(getPath "$l")"
done \
| align -clmn 1 -l "$sep" \
| sort -r
}
filenameFromLine() {
sed -e 's/.*¤ \(.*\) ¤.*/\1/' -e 's,/*[ ]*$,,'
}
getPath() {
[ -f "$TrashDir/info/$1.trashinfo" ] || { return; }
cat "$TrashDir/info/$1.trashinfo" \
| grep '^Path=' \
| sed 's/^Path=//';
}
getDate() {
[ -f "$TrashDir/info/$1.trashinfo" ] || { return; }
cat "$TrashDir/info/$1.trashinfo" \
| grep 'Date=' \
| sed 's/.*Date=//';
}
## Could do sub-commands