diff --git a/.config/zsh/zshrc.d/40-functions.zsh b/.config/zsh/zshrc.d/40-functions.zsh index 04fee06..8c288b5 100644 --- a/.config/zsh/zshrc.d/40-functions.zsh +++ b/.config/zsh/zshrc.d/40-functions.zsh @@ -570,3 +570,18 @@ suffix() { # Pass starting points and the name arguments find "${@:$((i+1))}" -name "${(@)names}" } + +# Find duplicate files +finddup() { + # find all files, filter the ones out with unique size, calculate md5 and + # print duplicates + find "$@" -type f -exec du '{}' '+' \ + | awk '{print $2,$1}' \ + | sort -k2 \ + | uniq -f1 -D \ + | awk '{print $1}' \ + | xargs -d'\n' md5sum \ + | sort \ + | uniq -w32 --all-repeated=separate \ + | awk '{print $2}' +}