Я реорганизую некоторые файлы на своем жестком диске, и у меня есть старая копия папки, и я хочу убедиться, что каждый файл в папке A (старая копия) существует в папке B. Каждая папка содержит не менее 200 файлов, большинство из которых, вероятно, являются дубликатами.
Предостережение: я не могу просто проверить имена файлов, я также должен убедиться, что они имеют одинаковое содержание (а-ля fdupes
).
Я проверил man-страницу на предмет fdupes
того, есть ли какой-то способ выполнить обратную операцию (т.е. выяснить, какие файлы не имеют копий), но он появился с пустыми руками, даже если бы функционал существовал, у меня все еще есть файлы, которые существуют только в папке B ,
Эти два вопроса были похожи, но были только для Windows, поэтому не сильно помогли:
- Как найти все папки в папке A, которых нет в папке B?
- Удалить файлы из одной папки, если файл с аналогичным именем не существует в другой папке
Заранее спасибо.
fdupes
установил. Создает ли он список дубликатов файлов?Ответы:
Если у вас уже есть список дублирующихся файлов, просто сравните его со списком всех файлов, чтобы найти отдельные:
-w
только целые слова математики (не подстроки, поэтому файлabcd
не соответствуетabc
)-F
считает шаблоны буквальными, а не регулярными выражениями-f
использует указанный файл (-
в данном случае, то есть стандартный ввод) в качестве списка выражений для сравнения.-v
как вы, наверное, знаете, показывает несоответствующие линии.Это должно привести к выводу списка, содержащего файлы, найденные только в одной из папок, должно быть легко проверить, что они все находятся в папке B, просматривая или подбирая имя папки A (называемой ниже
dir1
) следующим образом:источник
-r
флагfdupes
, отредактировать пост так, чтобы он повторялся. Спасибо!