Как найти (и удалить) дубликаты файлов

Я знаю, что это старый поток, но меня попросили рассказать вам о тонкой, но существенной разнице между gksu и gksudo.

Хотя я долго смотрел , Я нигде не могу найти документальную информацию, и все же она существует. Я также не понял, почему есть разница. Я нашел это трудным путем, когда случайно удалил некоторые системные файлы именно из-за этой разницы (обсуждался в , который попросил вас рассказать ) - я использовал gksu, но с тех пор я убедился всегда использовать gksudo.

Чтобы подвести итог, попробуйте это.

Создайте три файла в некоторой папке: touch abc touch abc.tmp touch abctmp Выполните следующие шесть команд. Первые пять дают тот же (ожидаемый) результат (т. Е. Только abc.tmp), тогда как шестой включает дополнительный файл (abctmp), которого он не должен.
find . -regextype posix-egrep -regex '.*\.tmp' -print
sudo find . -regextype posix-egrep -regex '.*\.tmp' -print
gksudo -- find . -regextype posix-egrep -regex '.*\.tmp' -print
gksudo --su-mode -- find . -regextype posix-egrep -regex '.*\.tmp' -print
gksu --sudo-mode -- find . -regextype posix-egrep -regex '.*\.tmp' -print
gksu -- find . -regextype posix-egrep -regex '.*\.tmp' -print

Представьте себе проблемы при замене -print на -delete в команде find (это именно то, что случилось со мной, в результате чего некоторые системные файлы были удалены). [!d12 ]

Итак, используйте gksudo вместо gksu.

1
задан 22 April 2014 в 18:41

7 ответов

FSlint имеет графический интерфейс и некоторые другие функции. Объяснение алгоритма проверки дубликатов из их FAQ:

1. exclude files with unique lengths
2. handle files that are hardlinked to each other
3. exclude files with unique md5(first_4k(file))
4. exclude files with unique md5(whole file)
5. exclude files with unique sha1(whole file) (in case of md5 collisions).

fslint

56
ответ дан 26 May 2018 в 01:22
  • 1
    Благодарю. Обратите внимание, что имя команды is " fslint-gui & quot ;, а инструменты командной строки не находятся в $ PATH по умолчанию - они находятся в / usr / share / fslint / fslint. Я был сбит с толку, когда мне не помогли, на какой пакет он находился, просто запустив fslint (через / usr / lib / command-not-found). – nealmcb 20 November 2011 в 00:59
  • 2
    именно то, что необходимо – Tebe 17 August 2014 в 22:38
  • 3
    @nealmcb Если вы используете sudo apt-get install fslint, установка в настоящий момент помещает fslint-gui в путь и поэтому я могу запустить его из любой точки, просто набрав fslint-gui. Вы можете найти, где fslint-gui живет, набрав which fslint-gui (он выглядит как скрипт Python). – user29020 25 November 2014 в 23:29

Список programs/scripts/bash-solutions, который может найти дубликаты и работать под nix:

dupedit: сравнивает сразу несколько файлов без контрольных сумм. Избегает сравнения файлов с самим собой, когда несколько путей указывают на один и тот же файл. dupmerge: работает на разных платформах (Win32 / 64 с Cygwin, * nix, Linux и т. д.) dupseek: Perl с алгоритмом, оптимизированным для уменьшения чтения. fdf: Perl / c работает и работает на большинстве платформ (Win32, * nix и, возможно, другие). Использует MD5, SHA1 и другие алгоритмы контрольной суммы freedups: shell script, который выполняет поиск по указанным вами каталогам. Когда он находит два одинаковых файла, он жестко связывает их вместе. Теперь два или более файла все еще существуют в своих соответствующих каталогах, но только одна копия данных хранится на диске; обе записи в каталогах указывают на одни и те же блоки данных. fslint: имеет интерфейс командной строки и графический интерфейс. liten: инструмент командной строки для дедупликации Pure Python и библиотека, используя контрольные суммы md5 и новый алгоритм сравнения байтов. (Linux, Mac OS X, * nix, Windows) liten2: переписывание оригинальной Liten, еще инструмент командной строки, но с более быстрым интерактивным режимом с использованием контрольных сумм SHA-1 (Linux, Mac OS X, * nix) rdfind: One из немногих, которые ранжируют дубликаты на основе порядка входных параметров (каталогов для сканирования), чтобы не удалять в «исходных / хорошо известных» источниках (если дано несколько каталогов). Использует MD5 или SHA1. rmlint: быстрый поиск с интерфейсом командной строки и множество опций для поиска другого lint тоже (использует MD5) ua: инструмент командной строки Unix / Linux, предназначенный для работы с find (и т. п.). findrepe: бесплатный инструмент командной строки на основе Java, предназначенный для эффективного поиска дубликатов файлов, он может выполнять поиск в почтовых индексах и банках. (GNU / Linux, Mac OS X, * nix, Windows) fdupe: небольшой скрипт, написанный на Perl. Выполнение своей работы быстро и эффективно.1 ssdep: идентифицировать почти идентичные файлы, используя Context Triggered Piecewise Hashing
48
ответ дан 26 May 2018 в 01:22
  • 1
    Может ли любая из этих программ найти дубликаты папок (а не только дублировать файлы?) – Anderson Green 2 September 2012 в 08:08
  • 2
    @AndersonGreen rmlint может найти дубликаты dirs. [F2] – oligofren 3 January 2015 в 18:33

Если ваша задача дедупликации связана с музыкой, сначала запустите приложение picard, чтобы правильно идентифицировать и пометить вашу музыку (чтобы вы нашли дубликаты файлов .mp3 / .ogg, даже если их имена неверны). Обратите внимание, что picard также доступен как пакет Ubuntu.

Это сделано, на основе тега musicip_puid вы можете легко найти все свои повторяющиеся песни.

6
ответ дан 26 May 2018 в 01:22

Другой скрипт, выполняющий эту работу, - rmdupe. На странице автора:

rmdupe использует стандартные команды linux для поиска в указанных папках для дубликатов файлов, независимо от имени файла или расширения. Прежде чем удалять дубликаты кандидатов, они сравниваются по байтам. rmdupe также может проверять дубликаты в отношении одной или нескольких справочных папок, может удалять файлы вместо их удаления, позволяет выполнить команду пользовательского удаления и может ограничить поиск файлами указанного размера. rmdupe включает режим моделирования, который сообщает, что будет сделано для данной команды без фактического удаления любых файлов.
4
ответ дан 26 May 2018 в 01:22

Вы пробовали

finddup

или

finddup -l

Я думаю, что все нормально.

3
ответ дан 26 May 2018 в 01:22

Для дублирования и удаления дубликатов музыки Picard и Jaikoz по http://musicbrainz.org/ - лучшее решение. Jaikoz Я считаю, что автоматически помечает вашу музыку на основе данных файла песни. Вам даже не нужно имя песни, чтобы определить песню и назначить ей все метаданные. Хотя бесплатная версия может отмечать только ограниченное количество песен за один проход, но вы можете запускать ее столько раз, сколько хотите.

2
ответ дан 26 May 2018 в 01:22

Я использую komparator - sudo apt-get install komparator (Ubuntu 10.04+) - как GUI-инструмент для поиска дубликатов в ручном режиме.

2
ответ дан 26 May 2018 в 01:22

Другие вопросы по тегам:

Похожие вопросы: