Найдите дублированные и перекрывающиеся каталоги, файлы и деревья в файловой системе.
Добавьте эту строку в Gemfile вашего приложения:
gem 'dupless'
И затем выполните:
$ bundle
Или установите его самостоятельно как:
$ gem install dupless
Существуют два приложения с разными реализациями.
Это позволяет найти дубликаты файлов и каталогов, которые хотя бы частично совпадают с файлами в другом каталоге.
Сравнение файлов основано на содержимом файла, а не на именах файлов, как и diff
.
При этом используется кэширование, чтобы избежать повторного чтения файлов.
Когда пара (или более) файлов из двух каталогов совпадает, каталоги сравниваются и могут быть одного из следующих типов:
Идентичен: каждый файл в обоих каталогах имеет совпадение в другом каталоге.
Содержит: каждый файл в одном каталоге имеет файл в другом каталоге, т. е. первый каталог является надмножеством второго.
Несоответствие: два каталога имеют общие файлы, т. е. пересечение хотя бы одного элемента.
Это позволяет найти дублированные иерархии файлов и каталогов, основываясь только на имени (а не на содержимом файла, в отличие от dupless
).
Два каталога равны (идентичны), если все каталоги и файлы в каждом каталоге совпадают во втором.
При этом не используется кэширование.
Супермножества («содержит») и пересечения («несоответствия») не рассчитываются.
После проверки репозитория запустите bin/setup
, чтобы установить зависимости. Затем запустите rake test
чтобы запустить тесты. Вы также можете запустить bin/console
для получения интерактивной подсказки, которая позволит вам поэкспериментировать.
Чтобы установить этот драгоценный камень на свой локальный компьютер, запустите bundle exec rake install
. Чтобы выпустить новую версию, обновите номер версии в version.rb
, а затем запустите bundle exec rake release
, который создаст тег git для этой версии, отправит git коммиты и теги и отправит файл .gem
на сайт Rubygems.org.
Отчеты об ошибках и запросы на включение в некоторой степени приветствуются на GitHub по адресу https://github.com/jpace/dupless.
Гем доступен с открытым исходным кодом в соответствии с условиями лицензии MIT.