Грязный Filesytem: удаление дубликатов файлов из командной строки

в debian / ubuntu я хочу:

а) создать список всех файлов в одном дереве каталогов


б) сделайте то же самое для второго дерева каталогов


c) сравните два списка таким образом, что сравниваются только имена файлов (т. е. просто сравнивается "файл.тхт" часть "/главная/папка/файл.тхт" == "/главная/secondfolder/папка/файл.txt)


d) вывести список всех дубликатов

может кто-нибудь объяснить, как это сделать с помощью скриптов языков или regex или что-то?

10
задан fixer1234
03.02.2023 12:07 Количество просмотров материала 2475
Распечатать страницу

2 ответа

использовать find /some/dir -printf '%f\t%p\n > files<N>.lst' или какой-то его вариант, чтобы найти файлы в деревьях, то join -j 1 files1.lst files2.lst для объединения списков файлов в один вывод.

1
отвечен Ignacio Vazquez-Abrams 2023-02-04 19:55

вот пример, который будет работать с [т]КШ, ТШ и т. д., используя 'найти', 'неужели', 'сорт', 'уник', и /Бен/ш один-лайнер, чтобы выполнить команду md5sum', чтобы получить подпись каждого файла. С помощью списка подписей для обоих файлов структуры каталогов, последовательность команд вернет те файлы, которые являются одинаковыми:

find a/ b/ -type f -exec md5sum {} \; > /tmp/list; awk '{print }' ' | awk '{print }' | sh -c 'while read s; do awk "/^$s/ { print $2}" /tmp/list; echo; done'

по существу, это генерирует md5sum для всех файлов в каталоге 'a' и каталоге' b'. Шестнадцатеричные строки (первый столбец) подаются в конвейерная фильтрация экземпляров только одного вхождения для заданной контрольной суммы, передача остатка итератору /bin/sh, который извлекает все фактические файлы, соответствующие контрольной сумме (и вставка пустой строки между группами.)

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

0
отвечен user65446 2023-02-04 22:12

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх