Как найти файл в Linux с помощью командной строки

Что нужно знать

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

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

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

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

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

найти имя файла.

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

найти / имя файла.

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

найти. имя файла.
Найдите команду lorem.odt в окне терминала в Ubuntu Linux

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

найти / -имя файла.
  • Первая часть команды 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'

Терминал в Ubuntu Linux показывает команду " find -name * .mp3"

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

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

find / -name * .mp3 -fprint nameoffiletoprintto.

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

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

find / -name filename -exec nano '{}' \;

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

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