From bef12252baa99eff1261fff6ddaab2c2cd951f25 Mon Sep 17 00:00:00 2001 From: Julian Prein Date: Wed, 31 Aug 2022 15:01:19 +0200 Subject: [PATCH] zsh:funcs: Add `finddup` to find duplicate files --- .config/zsh/zshrc.d/40-functions.zsh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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}' +}