Серверная (www.it-simple.ru)

Программы для поиска и удаления дубликатов файлов в Linux


fdupes

Использование

user@comp:~$ fdupes [опции] КАТАЛОГ...

где КАТАЛОГ - это абсолютный или относительный путь к каталогу, где мы будем искать дубликаты файлов. Также может быть указано несколько каталогов через пробел.

ОпцииОписание
-r--recurseпроходить по подкаталогам каждого из КАТАЛОГОВ, указанных в командной строке
-R--recurse:проходить по подкаталогам каждого из КАТАЛОГОВ, указанных в командной строке после данной опции
-s--symlinksпроходить по символическим ссылкам
-H--hardlinksпри обычном поведении программы, в случае когда два или больше файлов указывают на одну и ту же область жёсткого диска (жёсткие ссылки) они не определяются как дубликаты; данная опция меняет такое поведение. Более того: если данная опция не установлена (а это случай по умолчанию), то файлы, на которые существует хотя бы одна жёсткая ссылка вообще исключаются из поиска дубликатов. Проверено опытным путём.
-n--noemptyисключить из поиска файлы нулевой длины
-f--omitfirstне включать первый файл в каждый из наборов дубликатов
-1--samelineвыдавать набор дубликатов в одну строку через пробел. Опция - это цифра 1 (один), а не латинская буква L :)
-S--sizeпоказывать размер дубликата
-m--summarizeвывести суммарную информацию о дубликатах. Выдаётся общее количество дубликатов, количество из них уникальных файлов и занимаемое дубликатами место. Информация по самим файлам при этом не выводится (!)
-q--quietне показывать ход процесса. Полезно при выводе результатов в файл
-d--deleteспрашивать у пользователя о действиях над каждым найденным набором дубликатов: какие файлы сохранить, а какие удалить. При глупых настройках файлы могут быть безвозвратно утеряны. Например, если список КАТАЛОГОВ пересекается подкаталогами или если вместе с этой опцией задана опция -s (--symlinks)
-N--nopromptвместе с опцией --delete, сохраняет первый файл в каждом наборе дубликатов и удаляет все остальные файлы без подтверждения пользователя
-v--versionвыводит версию fdupes
-h--helpвыводит справку (на английском)

Работа программы

После ввода команды fdupes сканирует все заданные файлы (подходящие под выборку), составляет их список и генерирует контрольные суммы. Дальше идёт сверка файлов.

Выводится ход процесса сверки (если опциями не указано другое поведение).

Результат сканирования выводится по умолчанию в консоль и только в конце проверки, а не по мере нахождения одинаковых файлов. Пути к файлам выводятся с новой строки, наборы дубликатов разделяются пустой строкой. Размер файла (если указано опциями) выводится в начале каждого набора.

Элементы набора дубликатов сортируются в соответствии со списком КАТАЛОГОВ. То есть элемент из первого КАТАЛОГА будет стоять первым в списке дубликатов, а остальные элементы идут по алфавиту.

Итого

Плюсы: программа работает очень быстро. Предусмотрены различные варианты вывода результатов, что удобно для транслирования в другие приложения для дальнейшей работы с дубликатами. Сбоев замечено не было.

Минусы: По умолчанию из поиска файлов полностью исключаются те, на которые существуют жёсткие ссылки.

FSlint

Пакет FSlint - это прежде всего графический интерфейс fslint-gui, а также ряд утилит для диагностики, исправления и оптимизации файловой системы, которые могут быть вызваны по отдельности из консоли.

Программа FSlint

Помимо поиска дубликатов FSlint умеет находить плохие или конфликтующие имена, временные файлы, мёртвые символические ссылки, пустые каталоги и другой «мусор» файловой системы.

Поддерживаются различные операции с результатом поиска.

Отдельно надо отметить возможность объединения одинаковых файлов с помощью жёстких ссылок.

Основной состав консольных утилит (скриптов) FSlint

Находятся по адресу /usr/share/fslint/fslint/.

fslint — описания скриптов

findbl — ищет битые символические ссылки (Bad Links)
finded — ищет пустые каталоги (Empty Directories)
findid — ищет неиспользуемые или плохие идентификаторы файлов (IDs)
findnl — ищет плохие имемна файлов или каталогов (Name Lint)
findns — ищет неисполняемые бинарники (NonStripped)
findrs — ищет лишние пробельные символы в именах (Redundant whiteSpace)
findsn — ищет файлы с одинаковыми или конфликтующими именами ()
findtf — ищет временные файлы (Temporary Files)
findu8 — ищет имена с неверной перекодировкой в UTF8 (UTF8)
findul — ищет лишние библиотеки (Unused Libraries)
findup — ищет дубликаты файлов (dUPlicate files)

Работа программы

Интерфейс - графический и интуитивно понятный, собственно этим всё и сказано.

Единственное, что можно отметить - при объединении файлов за основу берётся первый в списке дубликатов.

Итого

Плюсы: мощная программа с простым и понятным графическим интерфейсом.

Минусы: бинарники (вместо скриптов) работали бы быстрее.