Несмотря на популярность оконных менеджеров, которые предлагают графический интерфейс пользователя, лучший способ поиска файлов в Linux требует оболочки. Команда find с ее многочисленными опциями и переключателями предлагает самые мощные и точные функции для отображения того, что вы ищете.
Все современные дистрибутивы Linux поддерживают команду find из оболочки. Чтобы получить доступ к оболочке (иногда называется окно терминала), нажмите на соответствующую иконку или нажмите Ctrl + Alt + T . (Эта команда может не работать в некоторых дистрибутивах Linux.)
Команда «найти»
Команда для поиска файлов называется find .
Основной синтаксис команды find:
найти имя файла
Текущий активный путь отмечает местоположение поиска по умолчанию. Чтобы выполнить поиск по всему диску, введите следующее:
найти / имя файла
Однако, если вы хотите найти папку, в которой вы находитесь, используйте следующий синтаксис:
находить . имя файла
При поиске по имени по всему диску используйте следующий синтаксис:
найти / -name имя файла
- Первая часть команды find — это команда find.
- Вторая часть — с чего начать поиск.
- Следующая часть — это выражение, которое определяет, что искать.
- Последняя часть — это имя файла для поиска.
Поиск местоположения ярлыков
Первый аргумент после команды поиска — это местоположение, которое вы хотите найти. Хотя вы можете указать конкретный каталог, вы можете использовать метасимвол в качестве замены. Три метасимволы, которые работают с этой командой, включают:
- Период : указывает текущую и все вложенные папки.
- Прямая косая черта : Определяет всю файловую систему.
- Тильда : указывает домашний каталог активного пользователя.
Поиск по всей файловой системе может привести к ошибкам в доступе. Запустите команду с повышенными привилегиями (с помощью команды sudo), если вам нужен поиск в тех местах, к которым ваша стандартная учетная запись обычно не имеет доступа.
Выражения
Наиболее распространенным выражением, которое вы будете использовать, является -name , которое ищет имя файла или папки.
Однако есть и другие выражения, которые вы можете использовать:
- -amin n : к файлу последний раз обращались n минут назад.
- -anewer : последний раз к файлу обращались позже, чем он был изменен.
- -atime n : к файлу последний раз обращались более n дней назад.
- -cmin n : последний раз файл был изменен n минут назад.
- — cnewer : последний раз файл был изменен позднее, чем файл был изменен.
- -ctime n : последний раз файл был изменен более n дней назад.
- -empty : файл пуст.
- — исполняемый файл : файл исполняемый.
- Ложь : всегда ложно.
- -fstype type : файл находится в указанной файловой системе.
- -gid n : файл принадлежит группе с идентификатором n .
- -group groupname : файл принадлежит указанной группе.
- -ilname pattern : Искать символическую строку, но игнорировать регистр.
- -iname pattern : поиск файла, но игнорирование регистра.
- -inum n : поиск файла с указанным узлом.
- -ipath path : искать путь, но игнорировать регистр.
- -iregex expression : поиск выражения, но игнорирование регистра.
- -links n : поиск файла с указанным количеством ссылок.
- -lname name : поиск символической ссылки.
- -mmin n : данные файла были последний раз изменены n минут назад.
- -mtime n : данные файла были последний раз изменены n дней назад.
- -name name : поиск файла с указанным именем.
- -новое имя : поиск файла, отредактированного позднее, чем указанный файл.
- -nogroup : поиск файла без идентификатора группы.
- -nouser : поиск файла без присоединенного пользователя.
- -path path : поиск пути.
- — readable : поиск файлов, которые доступны для чтения.
- -regex pattern : поиск файлов, соответствующих регулярному выражению.
- Тип типа : поиск определенного типа.
- -uid uid : числовой идентификатор пользователя совпадает с uid.
- -user name : файл принадлежит указанному пользователю.
- -записываемый : поиск файлов, в которые можно записать.
Пример использования команды Find
Вот несколько способов использования команды find.
Как найти файлы, к которым обращались более определенного количества дней назад
Чтобы найти все файлы в вашей домашней папке, к которым обращались более 100 дней назад:
найти ~ -atime 100
Как найти пустые файлы и папки
Чтобы найти все пустые файлы и папки в вашей системе:
найти / -пустой
Как найти все исполняемые файлы
Чтобы найти все исполняемые файлы на вашем компьютере:
найти / -исполнимый
Как найти все читаемые файлы
Чтобы найти все файлы, которые доступны для чтения:
найти / -читаемый
Узоры
Когда вы ищете файл, вы можете использовать шаблон. Например, поиск всех файлов с расширением mp3 :
найти / -имя * .mp3
Как отправить вывод из команды поиска в файл
Основная проблема с командой find заключается в том, что она может иногда возвращать слишком много результатов для просмотра за один раз. Передайте вывод в команду tail или выведите строки в файл следующим образом:
find / -name * .mp3 -fprint nameoffiletoprintto
Как найти и выполнить команду для файла
Для одновременного поиска и редактирования файла введите:
найти / -name имя файла -exec nano '{}' \;
Приведенная выше команда ищет файл с именем filename, а затем запускает нано-редактор для найденного файла.
Nano — это имя команды, а не точная часть этого синтаксиса.