diff options
-rwxr-xr-x | check.rc | 22 | ||||
-rwxr-xr-x | dedup.rc | 3 | ||||
-rwxr-xr-x | del.rc | 8 |
3 files changed, 33 insertions, 0 deletions
diff --git a/check.rc b/check.rc new file mode 100755 index 0000000..099bce7 --- /dev/null +++ b/check.rc @@ -0,0 +1,22 @@ +#!/usr/local/plan9/bin/rc + +fn sum { + find . -type f | while (file = `{read}) { + if (test -f $"file ) { + sha256 $"file + } + } +} + +previous = '' +sum | sed -E -e 's/(.*) = (.*)/\2 \1/' -e 's/SHA256 .//' -e 's/.$//' | sort | \ + tee sum | while (line = `{read}) { +#cat sum | while (line = `{read}) { + sum = `{echo $line | sed -E -e 's/([^ ]*) (.*)/\1/'} + file = `{echo $line | sed -E -e 's/([^ ]*) (.*)/\2/'} + if (~ $sum $previous) { + echo $"file is a duplicate. + } + + previous = $sum +} diff --git a/dedup.rc b/dedup.rc new file mode 100755 index 0000000..3077b63 --- /dev/null +++ b/dedup.rc @@ -0,0 +1,3 @@ +#!/usr/local/plan9/bin/rc + +./check.rc | ./del.rc @@ -0,0 +1,8 @@ +#!/usr/local/plan9/bin/rc + +sed -e 's/ is a duplicate.$//' | while (file = `{read}) { + if (test -f $"file) { + echo rm $"file >> /mnt/mem/log + rm $"file + } +} |