Очень часто я хочу выяснить, совпадает ли содержимое данных папок или является ли содержимое одной папки избыточным - возможно, чтобы проверить, является ли оно дублирующим и может быть удалено, или убедиться, что где-то есть копии всех файлов.
Если структура папок совпадает, а файлы не были переименованы, вы можете использовать diff -r
, meld
или любой другой инструмент, который сравнивает папки (и он перестает работать, если вы переименуете файлы или даже каталоги).
Если вы просто палочка , чтобы найти дубликаты вы можете использовать такие инструменты , как duff
или fdupes
Но - и это приводит к моему вопросу - я хотел бы проверить / запросить, если две папки имеют одинаковое содержимое на основе файлового содержимого (а не содержимого файла и пути к файлу, как в случае с diff
) или вместо перечисления дубликатов, расположенных в заданном папка Я хочу получить файлы без по крайней мере одной копии где-нибудь в моей системе.
Возможный вывод инструмента может выглядеть так:
fuzzydiff folder1 folder2
Only in 1: folder1/img_1234.jpg
Only in 2: folder2/bali/very_nice_moment.jpg
Only in 2: folder2/pictures_of_me/favorite_picture.jpg
(в этом примере папки bali
или pictures_of_me
внутри folder2
не может даже существовать в folder
так diff -r
бы просто пропустить каталог)
Есть ли кто - нибудь с подобными потребностями / требованиями и кто нашел удобный и надежный способ для получения описанной информации о файловых системах с несколькими сотнями ГБ до нескольких ТБОВ эффективны?
Я работаю над системой Linux, поэтому предложенные подходы должны быть основаны на Posix и командной строке (для объединения / объединения результатов).
Если мое описание все еще нечеткое: постоянно повторяющийся пример проблемы, которую я хочу решить, это: я хочу удалить большую папку с фотографиями или видео, которые я скопировал / переместил / переименовал, и я хочу иметь (надеюсь так пусто) список файлов в этой папке, где у меня нет копий.
В настоящее время я пишу инструмент, который отвечает моим требованиям, но я сомневаюсь, что я первый, кто должен решить такую ситуацию / проблему. В любом другом случае я ценю любые подсказки или отзывы, которые помогают развитию!