ОПЕРАЦИЯ · ЦЕЛОСТНОСТЬ
Найти дубликаты по хешу
Сгруппировать обычные файлы с одинаковым SHA-256.
Предварительные условия
Python 3; стабильный каталог samples, без меняющихся файлов.
Команда
python3 - <<'PY'
import hashlib
from pathlib import Path
groups = {}
for p in sorted(Path("samples").rglob("*")):
if p.is_symlink() or not p.is_file(): continue
h = hashlib.sha256()
with p.open("rb") as f:
while b := f.read(1048576): h.update(b)
groups.setdefault(h.hexdigest(), []).append(str(p))
for paths in groups.values():
if len(paths) > 1: print(repr(paths))
PYОбъяснение аргументов
Чтение блоками; repr предотвращает интерпретацию переводов строки в именах как новых записей.
Ожидаемый результат
Группы кандидатов на побайтовое равенство; ничего не удаляется.
Проверка
При необходимости строгого равенства дополнительно сравните байты.
Распространённые ошибки
- Одинаковые файлы могут быть нужны в разных местах; список путей тоже занимает память.
Обратимость
Никаких изменений.