Другая команда, которая работает как cat
, это pv
. Он загружает содержимое файла в стандартный вывод, который вы передаете другой программе (md5sum ), а индикация хода выполнения выводится через стандартный вывод. Хотя это действительно хорошо только для 1 файла за раз. Используйте какpv /usb1/bigfile1 | md5sum
Вы ничего не упустили относительно FSlint; он действительно поддерживает все эти сравнения, но не позволяет их настраивать — он де -дублирует, используя всю эту информацию, все время.
findup
сам по себе является сценарием оболочки, и каждое сравнение отделено друг от друга. Обозначены необязательные блоки, поэтому вы можете закомментировать их, чтобы пропустить тесты, которые вам не нужны.
Что касается jdupes, я вижу, вы подали жалобу на размер хеша; продуктивнее продолжить дискуссию там, чем решать ее здесь.
Вы можете find
дублировать такие размеры файлов:
find -type f -printf "%s\n" | sort -n | uniq -d
а затем делайте с этим что хотите... например, grep.
find -type f -printf "%s %p\n" \
| sort -n \
| grep -f <(find -type f -printf "^%s \n" | sort -n | uniq -d)
и находит материалы одинакового размера (вне зависимости от содержимого)
257659./b
257659./bsort
257764./a
257764./asort
only matching the first 4096 bytes isn't nearly enough and produces false duplicates
Не стесняйтесь добавлять условия, такие как начало хеширования, конец, середина файла. Самостоятельно написать сценарий не так уж и сложно.
Тем не менее, это может быть и не быть дубликатом, пока вы не прочитаете его полностью. Не существует эвристики, которая улавливает все, так как разница может появиться где угодно. Поэтому, если вы выбираете более короткий путь, вы всегда принимаете ложные дубликаты как само собой разумеющееся.
Единственный более быстрый способ проверить наличие дубликатов — сделать его жесткой ссылкой. Если это один и тот же файл, вам больше не нужно проверять размер или содержимое.