commit c6405f09ed3a01fb876e4f67942d06c1f54b0333 Author: redxef Date: Thu Oct 12 16:42:09 2023 +0200 Initial implementation. diff --git a/dups b/dups new file mode 100755 index 0000000..7bb53c0 --- /dev/null +++ b/dups @@ -0,0 +1,133 @@ +#!/bin/bash + +find_args="-not -path *@snapshot*" +PROGNAME="$0" + +#set -x +set -euo pipefail + +debug() { + echo "$@" >&2 +} + +abort() { + echo "$@" >&2 + exit 1 +} + +hashfc_short() { + local fname + [[ -z "$1" ]] && return + fname="$(awk '{print substr($0,index($0,$6))}' <<< "$1")" + head -c 4096 "$fname" | sha256sum -b - | awk '{print $1}' | echo "$(awk '{print $1,$2,$3,$4}' <<< "$1") $(cat -) $fname" +} + +hashfc() { + local fname + [[ -z "$1" ]] && return + fname="$(awk '{print substr($0,index($0,$6))}' <<< "$1")" + sha256sum -b - < "$fname" | awk '{print $1}' | echo "$(awk '{print $1,$2,$3,$4}' <<< "$1") $(cat -) $fname" +} + +collect_files() { + # timestamp size inode #hard_link hash path + #find $(< "$infile") -type f $find_args -printf '0 %s %i %n %p\n' | awk "$filename_to_base64_awk" + echo "=== COLLECT FILES ===" + find $(