Как найти файл в Linux с помощью командной строки
Что нужно знать
- Команда, используемая для поиска файлов, называется найти. Базовый синтаксис команды find следующий: найти [имя файла].
- После найти, используйте ярлык, чтобы указать каталог: "."для вложенных папок; "/"для всей файловой системы; "~"для домашнего каталога активного пользователя.
- Использовать выражение -имя для поиска имени файла. Например: найти / -имя * .mp3 ищет во всей файловой системе файл с именем * .mp3.
В этой статье объясняется, что Linuxнайти Команда есть, предлагает ярлыки местоположения поиска, общие выражения, примеры использования, шаблоны, как отправлять выходные данные команды find в файл и как найти и выполнить команду для файла.
Используйте команду find для поиска файла в Linux
Команда, используемая для поиска файлов, называется найти.
Базовый синтаксис команды find следующий:
найти имя файла.
Текущий активный путь по умолчанию отмечает место поиска. Чтобы выполнить поиск по всему диску, введите следующее:
найти / имя файла.
Однако, если вы хотите выполнить поиск в папке, в которой вы сейчас находитесь, используйте следующий синтаксис:
найти. имя файла.

При поиске по имени по всему диску используйте следующий синтаксис:
найти / -имя файла.
- Первая часть команды find - это команда find.
- Вторая часть - с чего начать поиск.
- Следующая часть - это выражение, определяющее, что искать.
- Последняя часть - это имя файла, который нужно найти.
Чтобы получить доступ к оболочке (иногда называемой окном терминала) в большинстве дистрибутивов, щелкните соответствующий значок или нажмите Ctrl + Alt + T.
Быстрые клавиши поиска
Первый аргумент после команды find - это место, которое вы хотите найти. Хотя вы можете указать конкретный каталог, вы можете использовать метасимвол служить заменой. Три метасимвола, которые работают с этой командой, включают:
- Период (.): Указывает текущую и все вложенные папки.
- Косая черта (/): Определяет всю файловую систему.
- Тильда (~): Указывает домашний каталог активного пользователя.
Поиск по всей файловой системе может привести к ошибкам отказа в доступе. Запустите команду с повышенными привилегиями (с помощью команды sudo), если вам нужно выполнить поиск в местах, где ваша стандартная учетная запись обычно не может получить доступ.
Выражения
Наиболее распространенное выражение, которое вы будете использовать, это -имя, который ищет имя файла или папки.
Однако есть и другие выражения, которые вы можете использовать:
- -амин н: Последний доступ к файлу +/- п минут назад, в зависимости от того, как вы вводите время.
- -анее: Берет другой файл в качестве ссылки, чтобы найти все файлы, к которым осуществлялся доступ в последнее время, и файл ссылки.
- -atime n: К файлу последний раз обращались больше / меньше, чем п дней назад, в зависимости от того, как вы вводите целевое время (n).
- -cmin n: Файл был последний раз изменен п минут назад, в зависимости от того, как вы вводите целевое время (n).
- -cnewer: Берет другой файл в качестве ссылки, чтобы найти все файлы, к которым осуществлялся доступ в последнее время, и файл ссылки.
- -ctime n: К файлу последний раз обращались больше / меньше, чем п дней назад, в зависимости от того, как вы вводите целевое время (n).
- -пустой: Файл пуст.
- -исполняемый файл: Файл исполняемый.
- -ложный: Всегда ложно.
- -fstype тип: Файл находится в указанной файловой системе.
- -gid n: Файл принадлежит группе с идентификатором п.
- -group имя группы: Файл принадлежит указанной группе.
- -ilname шаблон: Ищите символическую ссылку, игнорируя регистр.
- -iname шаблон: Поиск файла, игнорируя регистр.
- -inum n: Поиск файла с указанным индексом.
- -ipath путь: Найдите путь, но не обращайте внимания на регистр.
- -iregex выражение: Поиск выражения, игнорируя регистр.
- -ссылки n: Поиск файла с указанным количеством ссылок.
- -lname имя: Поиск символьной ссылки.
- -ммин п: Последний доступ к файлу +/- п минут назад, в зависимости от того, как вы вводите время.
- -mtime n: К файлу последний раз обращались больше / меньше, чем п дней назад, в зависимости от того, как вы вводите целевое время (n).
- -name имя: Поиск файла с указанным именем.
- -новое имя: Поиск файла, который редактировался позже, чем указанный справочный файл.
- -ногруппа: Поиск файла без идентификатора группы.
- -nouser: Поиск файла без прикрепленных к нему пользователей.
- -path путь: Поиск пути.
- -удобочитаемый: Найти файлы, которые можно читать.
- -regex шаблон: Поиск файлов, соответствующих регулярному выражению.
-
-тип тип: Поиск определенного типа. Варианты типа включают:
- -тип d: Directoris
- -тип f: Файлы
- -тип l: Symlinks
- -uid uid: Числовой идентификатор пользователя файла такой же, как и uid.
- -имя пользователя: Файл принадлежит указанному пользователю.
- -записываемый: Поиск файлов, в которые можно записывать.
Пример использования команды поиска
Вот несколько способов использования команды find.
Как найти файлы, к которым обращались больше определенного количества дней назад
Чтобы найти все файлы в вашей домашней папке, к которым обращались более 100 дней назад:
найти ~ -atime +100.
Как найти пустые файлы и папки
Чтобы найти все пустые файлы и папки в вашей системе:
найти / -пусто.
Как найти все исполняемые файлы
Чтобы найти все исполняемые файлы на вашем компьютере:
найти / -исполняемый.
Как найти все читаемые файлы
Чтобы найти все файлы, которые можно прочитать:
найти / -читаемый.
Узоры
При поиске файла вы можете использовать шаблон. Например, искать все файлы с расширением mp3:
найти / -имя * .mp3.
В зависимости от используемой оболочки вам может потребоваться избежать звездочки. Если вы запустили команду и не получили ожидаемых результатов, попробуйте процитировать весь шаблон, чтобы избежать звездочки, например: найти / -имя '* .mp3'

Как отправить вывод команды поиска в файл
Основная проблема с командой find заключается в том, что иногда она может возвращать слишком много результатов, чтобы просмотреть их за один раз. Подключите выход к хвостовая команда, или выведите строки в файл следующим образом:
find / -name * .mp3 -fprint nameoffiletoprintto.
Как найти и выполнить команду над файлом
Для одновременного поиска и редактирования файла введите:
find / -name filename -exec nano '{}' \;
Приведенная выше команда ищет файл с именем filename, а затем запускает редактор nano для найденного файла.
Nano - это имя команды, а не точная часть этого синтаксиса.