Скрипт для поиска и обработки дубликатов файлов в Linux
Скрипт находит идентичные файлы и, в случае выбора интерактивной моды (или если не указана опция -s),
спрашивает, что с ними делать: удалить файл по выбору или оставить как есть. Запускается с командной
строки или из cron-а - с опциями или без оных - в последнем случае он сам спросит, что ему делать.
Скрипт также выводит отчёт в STDOUT или в файл отчёта информацию о найдённых
идентичных файлах, их размеры, общее занимаемое ими место на диске, размер освободившегося места
в случае удаления дубликатов файлов, а также время своего выполнения.
Используются опции (выводятся на англ. списком по опции -h):
-d [путь(и), с которого(-ых) проверяем, разделённый(е) запятой, если несколько]
-g [типы файлов, которые не сравниваем, разделённые запятой]
-s бездиалоговая работа скрипта (только печатает отчёт в STDOUT или см. опцию -f)
-f [путь к файлу отчёта (имя файла)]
-h справка
Тесты:
папка размером в 1G обрабатывалась ~ полчаса (все типы файлов) или же
~9 мин. с фильтром по рисункам - jpg/gif, пара папок размером 40М обрабатывалась ~16сек.
на компьютере:
процессор 2546.504 MHz, память 255MB, OS Linux version 2.6.12 на диске ST380011A, ATA (Segate, кажется).
Язык скрипта: perl.
Используемые библиотеки: Time::HiRes, File::Compare, File::Find, Term::ANSIColor
(все стояли по умолчанию).
Размер скрипта: 125 строчек, 4720b.
Ссылочка с кодом скрипта.
|