summaryrefslogtreecommitdiff
path: root/delete-files
blob: 778b27c19a6580b60407c50c9da55908f28515f2 (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
#!/bin/bash

set -eu -o pipefail

dev="$1"
dir="$2"
img="$3"
cmd="$4"

echo
echo "unmount $dev"
sudo umount  "$dev" || true

echo
echo "unpack $img to $dev"
pv "$img" | unxz | sudo dd of="$dev"

started="$(date +%s)"

echo
echo "mount $dev on $dir"
sudo mount "$dev" "$dir"

echo
echo "delete all files under $dir"
files="$dir/files"
case "$cmd" in
    find)
	find "$files" -delete
	;;
    rm)
	rm -rf "$files"
	;;
    rsync)
	tmp="$(mktemp -d)"
	rsync -r --del "$tmp/." "$files/."
	rmdir "$files"
	;;
    *)
	echo "I don't know $cmd" 1>&2 ;
	exit 1
	;;
esac

echo
echo "unmount $dev"
sudo umount "$dev"

ended="$(date +%s)"
duration=$(("$ended" - "$started"))

echo
echo "seconds to delete: $duration"

echo
echo "done"