Как я могу удалить дубликаты файлов в разных деревьях каталогов?

10

У меня есть два каталога: old/и new/. Некоторые из файлов в old/являются дубликатами тех в new/. Некоторые просто имеют одно и то же имя, а некоторые могут даже иметь идентичный контент, но разные имена. Меня не интересует путь подкаталога к файлам, поэтому при сопоставлении необходимо учитывать только неквалифицированное имя файла.

Я хочу удалить дубликаты файлов old/, чтобы они содержали только файлы, не найденные в new/. Для случаев, когда имена файлов совпадают, но не содержимое, или наоборот, я хочу, чтобы это было указано в некотором журнале.

Кто-нибудь сталкивался с подобной проблемой, или есть лучшее решение, чем взломать (Perl или подобный) скрипт с нуля? Время выполнения, в котором преобладает вызов md5sumкаждого файла, является приемлемым.

P-гайка
источник

Ответы:

7

Конечно! Проверьте FSlint :

FSlint - это утилита для поиска и очистки различных форм ворса в файловой системе. То есть нежелательная или проблемная переброска в ваших файлах или именах файлов. Например, одна из форм, которую он находит, - это дубликаты файлов. Он имеет как графический интерфейс, так и режимы командной строки.

альтернативный текст

FSlint - бесплатное программное обеспечение с открытым исходным кодом.

Джон Т
источник
Это выглядит достаточно близко для того, что я хочу. Благодаря!
P-Nuts
8

fdupes - находит дубликаты файлов в заданном наборе каталогов

fdupes new/ old/

-d для удаления

-Н за не спрашивай

fdupes -N -d new/ old/
Кристиан Чиупиту
источник
Разве это также не найдет (и не удалит) дубликаты в каждом каталоге? Другими словами, если новое (или старое) будет содержать дубликаты файлов, которые могут быть или не быть найдены в старых, они тоже будут удалены? Я не думаю, что fdupes - это просто программа для анализа, которая подразумевается вашими аргументами «новый» и «старый».
Стивен Недзельски