Использовать fdupes:
fdupes -dN .
man fdupes:
-d --delete
prompt user for files to preserve, deleting all others (see
CAVEATS below)
-N --noprompt
when used together with --delete, preserve the first file in
each set of duplicates and delete the others without prompting
the user
Этот скрипт использует ассоциативный массив в bash для сохранения контрольных сумм, а затем сообщает о дубликатах; измените эхо
на rm
, если оно выглядит хорошо (или rm -i
для большей паранойи):
#!/usr/bin/env bash
declare -A sums
for f in *
do
if [[ ! -f "$f" ]]; then continue; fi
c=$(cksum "$f" | awk '{print $1}')
[[ -n "${sums[$c]}" ]] && echo "# rm \"$f\" -- duplicate of ${sums[$c]}"
sums[$c]="$f"
done