Как искать файлы в Linux

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


Использование команды find для поиска файла в Linux

Команда, используемая для поиска файлов, называется find.

Основной синтаксис команды find следующий:

find filename

По умолчанию местом поиска является текущий активный путь. Чтобы выполнить поиск по всему диску, введите следующее:

find / filename

Если же вы хотите найти папку, в которой находитесь в данный момент, используйте следующий синтаксис:

find . filename

При поиске по имени на всем диске используйте следующий синтаксис:

find / -name filenameПервая часть команды find - это команда find.Вторая часть - откуда начинать поиск.Следующая часть - выражение, определяющее, что искать.Последняя часть - имя файла для поиска.

Для доступа к оболочке (иногда называемой окном терминала) в большинстве дистрибутивов щелкните соответствующий значок или нажмите Ctrl+Alt+T.


Ярлыки мест поиска

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

Период (.): Определяет текущую и все вложенные папки.Передняя косая черта (/): Указывает всю файловую систему.Тильда (~): Указывает домашний каталог активного пользователя.

Поиск всей файловой системы может привести к ошибкам доступа. Выполните команду с повышенными привилегиями (с помощью команды sudo), если вам нужно выполнить поиск в местах, к которым стандартная учетная запись обычно не имеет доступа.


Выражения, которые можно использовать

Наиболее часто используемым выражением является -name, которое ищет имя файла или папки.

Однако существуют и другие выражения, которые вы можете использовать: -amin n: Последний раз к файлу обращались +/- n минут назад, в зависимости от того, как вы вводите время.-anewer: Берет другой файл в качестве ссылки, чтобы найти все файлы, к которым обращались более недавно, и файл ссылки.-atime n: К файлу последний раз обращались более/менее n дней назад, в зависимости от того, как вы вводите целевое время (n).-cmin n: Файл был последний раз изменен n минут назад, в зависимости от того, как вы вводите целевое время (n).-cnewer: Берет другой файл в качестве ссылки, чтобы найти все файлы, к которым обращались недавно, и файл ссылки.-ctime n: К файлу последний раз обращались более/менее n дней назад, в зависимости от того, как вы вводите целевое время (n).-empty: Файл пуст.-executable: Файл исполняемый.-false: Всегда false.-fstype type: Файл находится в указанной файловой системе.-gid n: Файл принадлежит группе с идентификатором n.-group groupname: Файл принадлежит названной группе.-ilname pattern: Поиск символической ссылки, но игнорирование регистра.-iname pattern: Поиск файла, но игнорирование регистра.-inum n: Поиск файла с указанным inode.-ipath path: Искать путь, но игнорировать регистр.-iregex expression: Искать выражение, но игнорировать регистр.-links n: Поиск файла с указанным количеством ссылок.-lname name: Поиск символической ссылки.-mmin n: Последний раз к файлу обращались +/- n минут назад, в зависимости от способа ввода времени.-mtime n: Последний раз к файлу обращались более/менее n дней назад, в зависимости от способа ввода целевого времени (n).-name имя: Поиск файла с указанным именем.-newer имя: Поиск файла, отредактированного более недавно, чем указанный файл ссылки.-nogroup: Поиск файла без идентификатора группы.-nouser: Поиск файла, к которому не прикреплен пользователь.-path path: Поиск по пути.-readable: Находить файлы, которые можно читать.-regex pattern: Искать файлы, соответствующие регулярному выражению.-type type: Поиск определенного типа. Опции типа включают:-тип d: Директорский тип f: Тип файлов l: Symlinks-uid uid: Числовой идентификатор пользователя файла совпадает с uid.-user name: Файл принадлежит указанному пользователю.-writable: Поиск файлов, в которые можно записывать данные.


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

Вот некоторые способы использования команды find.

Как найти файлы, доступные более определенного количества дней назад

Чтобы найти все файлы в вашей домашней папке, доступ к которым был получен более 100 дней назад:

find ~ -atime +100

Как найти пустые файлы и папки

Чтобы найти все пустые файлы и папки в вашей системе:

find / -empty

Как найти все исполняемые файлы

Чтобы найти все исполняемые файлы на вашем компьютере:

find / -executable

Как найти все читаемые файлы

Чтобы найти все читаемые файлы: find / -readable


Использование шаблонов для поиска файла

При поиске файла можно использовать шаблон. Например, поиск всех файлов с расширением MP3:

find / -name *.mp3

В зависимости от используемой оболочки, вам может понадобиться экранировать звездочку. Если вы выполнили команду и не получили ожидаемых результатов, попробуйте процитировать весь шаблон, чтобы убрать звездочку, например: find / -name *.mp3


Как отправить вывод команды Find в файл

Основная проблема команды find заключается в том, что она иногда возвращает слишком много результатов, чтобы просмотреть их за один раз. Направьте вывод в команду tail или выведите строки в файл следующим образом: find / -name *.mp3 -fprint nameoffiletoprintto


Как найти и выполнить команду в файле

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

find / -name filename -exec nano {} ;

Приведенная выше команда ищет файл с именем filename, а затем запускает редактор nano для найденного файла.

Nano - это название команды, а не точная часть этого синтаксиса.

Ваше имя: *
Ваш e-mail: *
Код: Кликните на изображение чтобы обновить код, если он неразборчив
Введите код: