Как найти файлы в командной строке Ubuntu

Одна из типичных проблем при работе с компьютерами заключается в том, что вы не можете найти файлы, которые вы где-то сохранили. Многие программы с графическим интерфейсом позволяют искать файлы во время работы под Linux, независимо от дистрибутива. Однако в некоторых ситуациях у вас будет доступ только к терминалу командной строки, особенно если вы управляете серверами или используете SSH для доступа к системе. Если вы не можете найти свои файлы, вы должны использовать программы командной строки в Linux для их поиска.

В этом руководстве показано, как использовать Терминал, который является программой командной строки в ОС Ubuntu, для поиска файлов. В оболочке есть три известных способа поиска файлов:

  1. Найдите файлы с помощью Find
  2. С использованием Locate
  3. С использованием Grep

Команды Find и Locate используются для поиска файлов в системе, в то время как grep используется для поиска файла по содержащемуся в нем тексту.

Способ 1: Использование команды «find»

Find — очень гибкая команда, используемая для поиска файлов на основе различных условий. Это очень полезный инструмент при поиске файла, имя которого вы не помните. С помощью команды "Find" вы можете выполнять поиск по имени файла и папки, дате создания, дате изменения и разрешениям. Вы можете объединить эти несколько условий в одну команду "Find". Это очень мощный, но более медленный инструмент поиска.

Общий синтаксис команды:

Поиск файлов в определенном каталоге

Вы можете использовать команду «Найти» для поиска всех файлов в определенном каталоге. Общий синтаксис будет таким:

Например, чтобы найти все файлы в папке /home/tin/Downloads/ запустите Терминал, нажав Ctrl+Alt+T а затем выполните следующую команду в Терминале:

find /home/tin/Downloads/

Поиск файлов в текущем каталоге

Для поиска файлов в текущем каталоге используйте

find .

Для поиска файла с именем, например softwares в текущем каталоге используйте следующую команду в Терминале:

find . -iname Softwares

Поиск с использованием подстановочного знака

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

Например, для поиска файлов, начинающихся со слова cent выполните следующую команду в Терминале:

find /home/tin/ -iname cent*

Поиск пустых файлов

Вы также можете искать пустые файлы с помощью команды «Найти». Общий синтаксис будет таким:

Например, чтобы найти пустые файлы под /home/tin выполните следующую команду в Терминале:

find /home/tin/ -empty

Поиск по дате и времени

Используя команду «find», вы также можете искать файлы в зависимости от того, когда они были доступны или изменены. Существуют типы времени, которое вы можете использовать для поиска файлов:

  • mtime (Modification time): когда содержимое файла было изменено в последний раз.
  • atime (Access time): когда к файлу обращались в последний раз.
  • ctime (Change time): когда атрибуты файла были изменены в последний раз.

Например, чтобы найти файлы в текущем каталоге, которые были изменены менее 2 дней назад, выполните в Терминале следующую команду:

find . -mtime -2

Чтобы найти файлы, к которым обращались менее 2 дней назад, выполните в Терминале следующую команду:

find . –atime -2

Чтобы найти файлы, которые были изменены менее 2 дней назад, выполните в Терминале следующую команду:

find . –ctime -2

Поиск по размеру файла

Например, для поиска файла, размер которого превышает 5 МБ, мы можем использовать следующую команду в Терминале:

find . –size +5M

Поиск на основе прав доступа к файлам

Он используется для поиска файлов с определенным разрешением. Общий синтаксис будет таким:

Где:

  • Type включает в себя d или f которые используются для указания типа файла. d для каталогов и f только для файлов.
  • mode может быть либо с числовым разрешением (например, 777, 655.. и т.д.), либо с символическим разрешением (например, u=x, a=r+x).

Например, чтобы найти файл с разрешением 644, мы можем использовать следующую команду в Терминале:

find . –type f –perm 644

Способ 2: Использование команды «Locate»

Есть еще одна команда Locate, которую можно использовать для поиска файлов в Linux. У него не так много условий поиска, как у утилиты Find, но он намного лучше и быстрее, чем утилита Find. Причиной является фоновый процесс, который фактически работает в вашей системе и ищет и сохраняет новые файлы в своей собственной базе данных. В отличие от команды «Найти», она не ищет файлы и каталоги на локальном жестком диске, а ищет их в собственной базе данных. Его база данных должна регулярно обновляться для работы поисковой утилиты.

Установка Locate

Locate не установлен по умолчанию в ОС Linux. Вам нужно будет установить его вручную. нажимать Ctrl+Alt+T чтобы запустить Терминал, а затем введите следующую команду от имени sudo, чтобы установить утилиту Locate:

$ sudo apt-get install locate

После завершения установки вы можете сразу же использовать утилиту Locate.

Общий синтаксис команды:

Где -i используется для игнорирования различий в регистре.

Поиск файла

Например, для поиска имени файла centos используйте следующую команду в Терминале:

Он будет искать все файлы, содержащие строку centos в их именах файлов.

locate –i centos

Поиск нескольких файлов

Вы также можете искать несколько имен файлов одновременно. Например, используйте следующую команду в терминале для поиска двух файлов sdn.txt а также centos:

locate –i sdn.txt centos

Поиск с использованием подстановочного знака

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

locate –i *.iso

Обновить базу данных Locate

Команда Locate полагается на свою базу данных для работы, поэтому ее необходимо регулярно обновлять. Выполните следующую команду в Терминале, чтобы обновить базу данных утилиты Locate:

sudo updatedb

Способ 3: использование команды Grep

Хотя Grep не предназначен для прямого поиска файлов в вашей системе, вместо этого он используется для поиска текста. Однако вы можете использовать его для отображения имен файлов, содержащих определенную строку символов, соответствующую вашему поисковому запросу. Чтобы найти строку, вы должны заключить ее в двойные кавычки.

Общий синтаксис команды:

где [options] содержит общие параметры для управления поиском и [pattern] содержит строку, которую мы хотим найти.

Если вы ищете файл, содержащий слово, которое, как вы подозреваете, может находиться в любом конкретном каталоге, вы можете найти его, используя приведенный выше синтаксис команды в Терминале.

Например, чтобы найти файл, содержащий слово tintin и мы думаем, что этот файл может быть в нашем Downloads мы можем использовать следующую команду, чтобы найти этот файл.

grep -r –i tintin /home/tin/Downloads

Где

-i используется для игнорирования различий в регистре

-r используется для рекурсивного поиска указанного каталога

Поиск нескольких слов

Вы также можете искать несколько строк одновременно. Вы должны использовать обратную косую черту and pipe sign | среди твоих струн.

Например, для поиска двух строк tintin а также pingмы можем использовать следующую команду в Терминале:

grep -r -I tintin|ping /home/tin/Downloads

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий