Как в Linux найти и удалить дубликаты файлов
Оригинал: How to Find and Remove Duplicate Files on Linux
Автор: Chris Hoffman
Дата публикации: 11 November 2014
Перевод: Н.Ромоданов
Дата перевода: декабрь 2014 г.
Независимо от того, пользуетесь ли вы системой Linux на своем настольном компьютере или на сервере, есть хорошие инструментальные средства, которые просканирут вашу систему на наличие дубликатов файлов и помогут вам удалить их для того, чтобы освободить место. Есть как исключительно графические средства, так и средства, работающие из командной строки.
Дубликаты файлов напрасно засоряют дисковое пространство. В конце концов, если вам действительно нужен один и тот же файл в двух разных местах, то вы всегда можете использовать символическую ссылку или жесткую ссылку, а данные хранить на диске только в одном месте.
Пакет FSlint доступен в репозиториях программ различных дистрибутивов Linux, в том числе для Ubuntu, Debian, Fedora и Red Hat. Просто запустите ваш менеджер пакетов и установите пакет "fslint". В этой программе по умолчанию предоставляется удобный графический интерфейс, но также есть различные функции этого пакета, работающие из командной строки. Как и у многих приложений Linux, графический интерфейс пакета FSlint является лишь внешним интерфейсом, который обращается к командам Fslint, лежащим глубже.
Впрочем, пусть вас не пугает использование удобного графического интерфейса FSlint. По умолчанию, он открывается при выборе панели Duplicates (Дубликаты) и указывается путь к вашему домашнему каталогу. Все, что вам нужно сделать, это нажать на кнопку Find (Найти) и пакет FSlint найдет список дубликатов файлов, находящихся в каталогах внутри вашего домашнего каталога. Используйте кнопки для удаления тех файлов, которые вы хотите удалить, и дважды щелкните по ним для того, их просмотреть.
Обратите внимание, что по умолчанию в утилитах командной строки путь к вашему домашнему каталогу не используется, поэтому вы не можете запускать их как обычные команды. В Ubuntu, вы сможете найти их в каталоге /usr/share/fslint/fslint. Так что, если вы хотите с помощью FSlint выполнить полное сканирование в отдельном каталоге, то в Ubuntu воспользуйтесь следующими командами:
cd /usr/share/fslint/fslint
./fslint /путь/к/каталогу
На самом деле эта команда ничего удалять не будет. Она просто выдаст список файлов-дубликатов, а все остальное — по вашему усмотрению.
Команда fdupes обычно не устанавливается по умолчанию, но она доступна в репозиториях многих дистрибутива Linux. Это простое инструментальное средство командной строки. Вероятно, это самый удобный и быстрый инструмент, который можно использовать в случае, если вы хотите найти дубликаты файлов в среде, где у вас есть доступ только к командной строке Linux, а не к графическому интерфейсу пользователя.
Пользоваться этой командой очень просто. Просто запустите fdupes с указанием после нее пути к каталогу. Таким образом, с помощью команды fdupes /home/chris можно выдать список всех дубликатов файлов в каталоге /home/chris - но не в подкаталогах! Команда fdupes -r /home/chris будет рекурсивно выполнять поиск дубликатов файлов во всех подкаталогах внутри каталога /home/chris и выдаст их список.
Этот инструмент не будет что-либо автоматически удалять, он просто покажет вам список дубликатов файлов. Если вы захотите, то можете удалить дубликаты файлов вручную. Вы также можете запустить команду с параметром -d, который поможет вам удалить файлы. Вам будет предложено выбрать файлы, которые вы хотите сохранить.
Да, мы будем снова рекомендовать пакет dupeGuru. Это кросс-платформенный инструмент с открытым исходным кодом, который настолько полезен, что мы уже рекомендовали его для поиска дубликатов файлов в Windows и удаления дубликатов файлов в Mac.
Пакет dupeGuru немного менее удобен, поскольку он недоступен в репозиториях большинства дистрибутивов Linux; впрочем он есть в репозиториях Arch Linux. Тем не менее, на сайте dupeGuru предлагается вариант PPA, который позволит легко установить пакеты этой программы в Ubuntu и в дистрибутивах Linux, созданных на базе Ubuntu. Пользователи других дистрибутивов Linux могут скомпилировать его из исходных кодов.
Точно также, как и в Windows и в Mac, dupeGuru предлагается в трех различных редакциях: стандартная редакция для простого поиска дубликатов файлов, редакция, предназначенная для поиска дубликатов песен, которые, возможно, были вырезаны или иначе закодированы, и редакция, предназначенная для поиска похожих фотографий, которые были повернуты, был изменен их размер или они были изменены как-то иным образом. Вы можете получить все эти редакции на сайте dupeGuru и все они доступны в виде варианта Ubuntu PPA.
Это приложение работает в Linux точно также, как и на других платформах. Запустите приложение, добавьте один или несколько каталогов для сканирования, и нажмите кнопку Scan (Сканирование). Вы увидите список дубликатов файлов, и вы можете их либо удалить, либо переместить их в другое место. Вы также можете при помощи двойного щелчка мыши легко их открыть и проверить содержимое файла.
После установки пакет Ubuntu должен быть запущен из командной строки - например, с помощью команды dupeguru_se в случае использования стандартной редакции пакета. Это требуется из-за того, что по умолчанию на рабочем столе не устанавливается ссылка на программу. Такое отсутствие интеграции с системой является единственной причиной, по которой мы не можем еще больше рекомендовать эту утилиту; впрочем, после того, как вы ее установите и запустите, она будет хорошо работать.
Как и следовало ожидать, это не полный список. С помощью менеджера пакетов, который есть в вашем дистрибутиве Linux, вы обнаружите много других утилит, предназначенных для поиска дубликатов файлов. В основном, это команды без графического интерфейса. Если нет каких-либо особых требований, то описываемые выше программы будут для вас наилучшими и мы рекомендуем вам ими пользоваться.
http://rus-linux.net/MyLDP/admin/find-and-remove-duplicate-files.html
|