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

  Дмитрий Бушуев  | 

Видео: Как искать файлы в линукс —

Linux урок 6. Поиск файлов/директорий/ссылок. Команда find 5 месяцев назад Разведка сайтов. Как искать файлы и каталоги на сервере 9 месяцев назад Linux поиск файлов 10 месяцев назад Линукс поиск файлов find, grep, locate 10 месяцев назад Поиск файлов в Linux и Unix — find, grep, ack, ripgrep 1 год назад Linux. Как найти файлы, занимающие много места на диске. 1 год назад Поиск файлов locate и find | Linux для начинающих 2 года назад Команды терминала Linux. Урок 6. Поиск файлов и текста 4 года назад Поиск файлов в linux exec, ok Часть 4 4 года назад Поиск файлов в linux, find, newer, size, exec, mtime, type Часть 3 4 года назад Поиск файлов в linux Команда find linux опция часть2 4 года назад Поиск файлов в linux. Команда find linux опция -name часть1 4 года назад LPIC 104.7 Поиск и расположение команд и файлов в Linux 6 лет назад

Создание файла и просмотр сведений о его владельце, группе и правах доступа

Сперва создадим файл file командой touch так, как описано в → этой статье. Для того, чтобы посмотреть информацию о его владельце, группе и правах доступа нужно набрать команду ls -l ИмяФайла. В итоге получим сводку по этому файлу:

[email protected]:~# ls -l file -rw-r—r— 1 root root 0 Apr 10 21:06 file

Первый набор символов отвечает за права доступа, далее идет имя владельца, за ним группа, потом дата/время создания и потом имя файла. Этой информации достаточно для того, чтобы определить, кто и что может делать с этим файлом и, если что-то не работает по причине того, что каких-то прав не хватает, то это становится ясно.

Полезные примеры использования Find

find $HOME -name «*.mp3» -print Отыщет все эмпэтришечки в домашнем каталоге пользователя и глубже по всем вложенным директориям.

find . -print Напечатает иерархию поддиректорий начиная с текущей директории.

find . -perm -o+w Найдет все файлы, в которые может писать любой желающий (помимо владельца и члена группы владельца). Такие файлы очень полезно выявлять и исправлять у них права. Полезно в плане безопасности.

find / -type d -name hotgirls Найдет на всех дисках директории с именем hotgirls

find / -type f -perm 0777 -print Найдет все файлы, в которые может писать любой желающий и при этом они являются исполняемыми. Настоящий источник заразы. Запустите эту команду из интереса. Если найдется хотя бы один такой файл, то вы не линуксоид, а ламер позорный, лишь притворяющийся линуксоидом.

find / -perm /u=s Найти все файлы с установленным битом SUID. Эти файлы запускаются с правами владельца. То есть, если исполнимый файл принадлежит root — а таких большинство в системе — и флаг SUID установлен, то в случае запуска этой программы непривилегированным пользователем программа получит полномочия суперпользователя. SUID-файлы нужны, но чем их меньше, тем лучше.

Читайте также:  Как массово проверить орфографию всех статей блога в 1 клик

find / -type f -perm 0777 -print -exec chmod 644 {} \;

Найти все опасные файлы с правами 777 и перепилить их в безопасный режим 0644 — владелец может читать и писать, остальные только читать.

find / -type f -name «*.mp3» -exec rm -f {} \; Стереть все эмпэтришки.

find /tmp -type d -empty Найти все пустые директории.

find /tmp -type f -name «.*» Найти все скрытые файлы.

find / -cmin -60 Найти все файлы, которые изменялись в течении последнего часа.

find / -size +50M Найти все файлы, имеющие размер от 50 Мб. Чистка диска!

find / -type f -name *.mp3 -size +10M -exec rm {} \; Найти все MP3-файлы, которые весят слишком много — более 10 Мб — и выпилить их с диска.

Программа с gui FSlint Janitor

Официальный сайт — Команда для установки:

sudo apt install fslint

1 sudo apt install fslint

Запустите программу. Она откроется с активной вкладкой «Дубликаты». По умолчанию используется путь к домашнему каталогу текущего пользователя.

Для начала работы укажите папки для поиска нажав кнопку «Add». Если хотите, что бы сканирование не производилось рекурсивно (просмотр вложенных папок) снимите флаг (на скриншоте обозначен «2»). Затем нажмите кнопку «Найти».

  • Ознакомьтесь с предложением, предоставляет молниеносные скорости и не регистрирует активность пользователей Лучший Сервис VPN
  • Один из лучших сервисов хотя и не дешевый. Множество функций безопасности, поддержка P2P и стримов Сервис NordVPN
  • Я предпочитаю всем сервисам впн создавать свой. Вот инструкция как создать собственный VPN сервер

После сканирования будут найдены дубликаты файлов и отобразится результат. Можно выделить ненужные файлы и удалить. Выделять можно как по одному так и группами. Для этого нажмите кнопку «Выделить» и увидите все возможные варианты (смотрите скриншот).

Из интересных опций я бы отметил ещё поиск пустых каталогов.

Поиск дубликатов в терминале с помощью fdupes

Ссылка на официальный сайт — Команда для установки:

sudo apt-get install fdupes

1 sudo apt-get install fdupes

Работать с программой просто. Введите в терминале ‘fdupes опции путь к папке’. Например, что бы сканировать домашнюю директорию пользователя «vasiliy» укажите fdupes /home/vasiliy. Сканироваться будет только папку «vasiliy» без вложенных каталогов.

Что бы сканировать все каталоги включая вложенные требуется указать опцию «-r». А что бы просканировать и удалить все дубли файлов параметр «-d».  Чтобы сразу сканировать и удалить все дубли в папке и подпапках пользователя «vasiliy» можно указать командой:

fdupes -rd /home/vasiliy

1 fdupes -rd /home/vasiliy

В процесса работы программа будет останавливаться и задавать вопрос какой из файлов оставить.

Выбирайте нажав на цифру соответствующую версии файла который желаете сохранить. Остальные будут удалены.

Можно задать параметр «-N». В таком случае вопросов задано не будет. Если желаете доверить все автоматическому режиму укажем:

fdupes -rdN /home/vasiliy

1 fdupes -rdN /home/vasiliy

После завершения работы будет отображен отчет. Знаком «+» указаны файлы сохранённые а знаком «-» удаленные. Вот так удобно и просто. Но будьте внимательны! Не удаляйте все подряд без понимания, что это за файл. Это может привести к потере важных данных!

Читайте также:  Какой выбрать линукс: популярные дистрибутивы

Основные операции с файлами и каталогами

Организация файлового хранилища – основная составляющая работы за компьютером. Создание, перемещение, копирование, удаление – лишь часть операций, с которыми пользователь сталкивается ежедневно. Их реализация возможна через графическую оболочку и через терминал. Поэтому стоит перечислить основные команды для работы с файлами и каталогами в Linux:

  • ls – просмотр содержимого папки;
  • cd – изменение директории;
  • rm – удаление файла;
  • rmdir – удаление папки;
  • mkdir – создание каталога;
  • mv – перемещение файла;
  • cp – копирование файла;
  • find – поиск файла по параметрам;
  • chmod – изменение разрешений.

Каждая из утилит имеет дополнительные опции, позволяющие организовывать работу по определенным принципам, либо обрабатывать информацию массово, поэтому стоит рассмотреть основные из них подробнее.

Создание

Для создания каталога в Linux применяют mkdir. Она позволяет создать подпапку в текущей директории либо в другой папке, но тогда необходимо ввести полный путь до нее. Для выполнения требуются права на запись в указанном каталоге.

Обязательный параметр утилиты – имя новой папки. Можно указать и дополнительные:

  • -m – установка прав доступа (-m 755);
  • -p – создание промежуточных директорий.

Для создания текстового документа можно воспользоваться консольным редактором, например, Namo или Vi. Так, для запуска второго нужно ввести в терминал:

vi

После этого откроется поле для ввода информации.

В консоли Linux возможны и другие способы создания файлов. Самым простым способом является использование оператора перенаправления:

>

Так, можно записать результат выполнения любой команды в текстовый документ. Например:

md5sum > ~/

В результате будет посчитана MD5-сумма и записана в

Но чаще для решения такой задачи используют утилиту touch:

touch

Она создает новый документ. При указании имени, которое уже имеется, для существующего элемента обновится дата изменения.

Копирование

В работе с файлами и каталогами Linux часто возникает потребность в копировании исходного документа в другую директорию, для чего используется утилита cp. При этом исходный документ остается на месте, а для нового можно задать другое имя:

cp file new_file

Cp позволяет скопировать целую папку со всеми вложениями. Для этого предназначен параметр -r:

cp -r /etc /etc_new

Перемещение

Перемещение в Linux работает по тому же принципу, что и копирование, без сохранения исходного документа. Для этого в терминале необходимо выполнить:

            mv file new_file

Для перемещения нужно указать путь к требуемому каталогу:

            mv file /home/user/tmp/newdir

Утилита имеет несколько опций:

  • -f – принудительная замена при существовании элемента с таким же именем;
  • -i – уведомление, что одноименный документ уже существует;
  • -n – пропуск при возникновении вышеописанной ситуации;
  • -u – замена, если в документе есть изменения;
  • -v – вывод результата выполнения.

Внимание! Для перемещения или копирования необходимо обладать правами записи в конечную директорию.

Переименование

Здесь также используется утилита mv. Дело в том, что если действия производить в одном каталоге, то происходит изменение исходного файла или папки.

Так, для переименования каталога «dir» в «folder» нужно задать следующую команду:

mv ~/dir ~/folder

Linux позволяет выполнить рекурсивное переименование всех вложенных каталогов и документов заданием параметра -R.

Удаление

Для удаления элементов применяют команду rm. Если она запускается из другого каталога, необходимо указать полный путь:

rm /usr/share/

Чтобы удалить папку, команда видоизменяется – rmdir:

rmdir folder1

Читайте также:  20 полезных приложений для Android с полученными root-правами

Для рекурсивного удаления всех вложенных документов и папок указывают параметр -r для rm:

rm -r /home/user/video/

Поиск

Поиск по каталогам в Linux производится с помощью команды find. Его шаблонная запись выглядит следующим образом:

find путь/к/директории опции

Обычно указывают полный путь, однако возможны и частные варианты:

  • «.» – поиск в текущей папке;
  • «/» – поиск относительно корня хранилища;
  • «~» – поиск в домашней папке.

Опции find дают возможность задать условия поиска:

  • -name – искать по имени;
  • -user – искать среди файлов пользователя;
  • -type – искать по типу, например, d – каталог, f – файл, l – ссылка;
  • -size (-n, +n, n) – искать элементы с размером не более (-), не менее (+) или равное n;
  • -mtime (-n, +n) – искать файлы, модифицированные менее (-) или более (+) чем n дней назад.

ПРОСМОТР ФАЙЛОВ LINUX В СЖАТОМ ВИДЕ

Иногда можно встретить в системе текстовые файлы в сжатом виде, формате gz. Это, например, конфигурационный файл ядра, или логи некоторых программ. Для того чтобы открыть файл в linux через терминал не распаковывая его есть целый ряд аналогов вышеописанных утилит с приставкой z. Это zcat, zless, zgerp, zegrep.

Например, открываем сжатый файл для просмотра:

 zcat

Или более практичный пример, распаковываем и копируем конфигурационный ядра в текущую директорию:

 zcat /porc/ .config

Так же можно использовать less, для просмотра сжатых файлов с прокруткой:

 zless test

А для фильтрации сжатых файлов по шаблону есть zgrep и zegrep. Например, ищем в сжатом логе ошибки:

 zgrep ‘EE’ /var/log/ 

Поиск без учета регистра

По умолчанию grep чувствителен к регистру. Это означает, что символы верхнего и нижнего регистра рассматриваются как разные.

Чтобы игнорировать регистр при поиске, вызовите grep с параметром -i (или —ignore-case ).

Например, при поиске Zebra без какой-либо опции следующая команда не покажет никаких результатов, т.е. есть совпадающие строки:

grep Zebra /usr/share/words

Но если вы выполните поиск без учета регистра с использованием параметра -i , он будет соответствовать как заглавным, так и строчным буквам:

grep -i Zebra /usr/share/words

Указание «Зебра» будет соответствовать «зебре», «ZEbrA» или любой другой комбинации букв верхнего и нижнего регистра для этой строки.

zebra zebra’s zebras

Заключение

Полный список команд для дистрибутивов Linux — материал скорее для объемной книги, чем для одной статьи. Однако, в данном обзоре мы постарались собрать самые важные из них. Эти команды будут гарантированно полезны как в повседневных задачах, так и для раскрытия продвинутых возможностей этой операционной системы.

У каждого пользователя Linux есть свой список must have команд. Наверняка и вам есть чем дополнить данный обзор? Делитесь своими любимыми командами Linux в комментариях!

Хотите, чтобы операционка работала как швейцарские часы? Надёжная и мощная платформа для развёртывания любых дистрибутивов Linux — VDS от Eternalhost!

Оцените материал: [Всего голосов: 8 Средний: 4.5/5]