10 минут

8

Ищем файлы в Linux

Реклама
Ремонт и настройка компьютера
Поиск файлов в Linux

Содержание

  1. Ищем файлы через терминал
    1. Ищем по названию файла
    2. Ищем по правам доступа
    3. Поиск по пользователю
    4. Поиск по группе
    5. Ищем по типу файла
    6. Ищем по размеру файла
    7. Поиск по дате изменения файла
    8. Другие команды для поиска
  2. Ищем файлы, используя графический интерфейс
    1. Поиск через меню оболочки
    2. Ищем через файловый менеджер

Рассказываем, о том, как можно найти файл в Linux.

Ищем файлы через терминал

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

Вот основные опции, которые можно изменить, дополнив команду find:

  1. -name — название. Тут все очевидно. Если знаете точное название файла, то можно использовать этот аргумент и быстро добраться до искомого. Стоит отметить, что к имени относятся отдельные буквы - даже расширение файла по ним отдельно можно искать.
  2. -size — размер. Аргумент на тот случай, если хотите почистить чересчур большие файлы, занимающие много пространства в системе, или просто выяснить, сколько их на компьютере.
  3. -perm — права доступа. Поиск файлов, которые защищены конкретными правами доступа и требующие определенных привилегий для работы с ними.
  4. -user — пользователь. Эта опция нужна, если название файла неизвестно или вам нужно отобразить сразу несколько файлов, которые относятся к конкретному пользователю (он их создал, например, или загрузил в систему).
  5. -group — группа. Поиск файлов, которые относятся к определенной группе пользователей (например, если есть файлы, которые может редактировать и запускать только ряд пользователей системы).
  6. -mtime — поиск по времени, когда файл в последний раз изменяли. Аргумент на случай, если нужно отобразить список файлов, которые были изменены недавно.
  7. -type — тип. Поиск файлов определенного типа. Например, если вам нужны только папки или ссылки.

Также вы сами устанавливаете локацию поиска. Сразу после команды find нужно указать область системы, в которой нужно разыскать файл.

  • Можно указать директорию полностью. Например: /Downloads/Files.
  • Или искать в корневой директории и во всех вложенных в нее: /.
  • Можно искать в папке, где пользователь находится прямо сейчас: ./.
  • Ну и в домашней директории: ~.

Ищем по названию файла

Как я уже написал раньше, за название файла в Linux принимается все от первой буквы имени до расширения. Поэтому существует сразу несколько вариантов поиска по названию. Разберем их на нескольких примерах:

Используем для поиска имя

Начнем с поиска по конкретному названию. Команда для поиска файла с именем «hello» в домашней папке будет выглядеть так: find ~ -name «hello*» -print.

Команда поиска файла «hello» в терминале

Вот такой простой синтаксис. Наглядно

Тут стоит обратить внимание сразу на несколько деталей. Во-первых, название файла всегда пишется в двойных кавычках. По-другому поиск не заработает. Во-вторых, символ * (звездочка) сразу после названия файла. Она обозначается, что нужно искать только эту часть текста. Все, что идет дальше (расширение, например) будет игнорироваться. В-третьих, мы пишем __-print__в конце, чтобы вывести результат поиска в терминал и посмотреть, что за файлы мы нашли.

Выдача команды поиска файла «hello» в терминале

А вот и результаты поиска, полученные благодаря -print.

При этом вы можете указать при поиске название файла и расширение сразу. Это удобно, если у вас на компьютере есть несколько файлов с одинаковым названием, но разным расширением.

Поиск по файлу и расширению в Ubuntu

Так выглядит поиск конкретного файла

Используем для поиска расширение или часть имени

Теперь перейдем к поиску файла по расширению. Команда для поиска скриптов в формате .js в папке Downloads будет выглядеть так: find ~/Downloads/ -name «*js» -print.

Команда по поиску js-скриптов в Ubuntu

Ставим звездочку перед расширением, чтобы исключить все лишнее из поисковой выдачи

Результат поиска файла по расширению в Ubuntu

Теперь в поисковой выдаче несколько файлов с одинаковым расширением

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

Для примера покажу две команды:

  1. find ~/Downloads/ -name «[h]*» - print. Эта ищет все файлы, название которых начинается с буквы h.
  2. find ~/Downloads/ -name «[t]*» -print. А эта ищет файлы c расширением .js ,название которых начинается с буквы h.

Команда для поиска файла по первой букве его имени

Вот результаты поиска по букве

Команда для поиска файлов по имени и расширению

Результаты поиска по букве и расширению

Ищем по правам доступа

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

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

Например, для поиска в домашней папке всех файлов, которые защищены привилегиями с кодом 775, можно воспользоваться такой командной: find ~ -perm 775 -print.

Поиск по пользователю

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

Например, вот так можно найти файл, принадлежащий пользователю parallels в папке Downloads: sudo find ~/Downloads -user parallels -print.

Команда поиска файла по пользователю

Вот как эта команда выглядит в терминале

В результатах оказались все мои файлы и сама папка Downloads из домашней директории.

Поиск по группе

Более опытные пользователи Linux в курсе, что владельцем файлов и папок может быть не только конкретный человек, но и группа. Соответственно, можно искать все файлы, которые принадлежат отдельной группе. Работает это почти так же, как и в случае с пользователями, только опция другая — -group.

В итоге, чтобы найти в системе все файлы, принадлежащие участникам группы test, воспользуемся такой командой: find / -group test -print. Естественно, название выбрано для примера, и у вас вместо test может быть какое-то другое имя.

Ищем по типу файла

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

Например:

  • f — обычный тип. Это любой файл, который хранится на компьютере. При этом он состоит из блоков.
  • d — каталог. Это файлы-таблицы, содержащие некие ссылки на обычные файлы для иерархической организации. Звучит сложно? Это папки.
  • b — блочный тип. Это специальные файлы, которые ассоциируются с внешними магнитными дисками, где данные переносятся только кусками заданного размера.
  • с — символьный тип. Еще один специальный файл, который ассоциируется со всеми сущностями удаленного контроля типа терминалов.
  • p — именованный канал. Это очень сложная структура межпроцессного взаимодействия. В двух словах не описать.
  • l — ссылка. Это не совсем файл. Точнее, файл, конечно, но не содержащий в себе каких-то полезных данных. Ссылка — это путь до настоящего файла.
  • s — сокет. Это механизм взаимодействия между другими файлами и программами.

Символы перед каждым типом файлов указаны не просто так. Именно их мы будем использовать для поиска. Вот как может выглядеть команда для поиска обычного файла: find / -type f -print.

Команда для поиска обычных файлов по всему диску

Как видите, количество файлов избыточное. Это говорит о том, что если мы хотим сыскать что-то конкретно, то фильтры надо настраивать более тонко

Собственно, мы задействовали саму команду поиска, указали в качестве локации поиска корневую директорию системы, использовали опцию -type для фильтрации результатов по типу и затем ввели сам тип f. Следуя такой же логике, можно указать другой символ (из перечисленных выше) и запустить поиск по другому типу.

Ищем по размеру файла

Файлы можно отфильтровать и отсортировать по размеру. Конечно, для точечного поиска эта опция вряд ли подойдет. Сами посудите, размер скольких файлов в системе вы вообще помните? Тем не менее, если вы по какой-то причине знаете точный размер, то его можно использовать в качестве фильтра для поиска. Например, чтобы найти в папке Downloads найти файл размером 100 мегабайт, нужно ввести find /home/имя пользователя/Downloads -size 100M -print.

Выдача команды по поиску больших файлов в Linux

Иногда вывод этой команды занимает весьма приличное время на полное отображение. Да и то помещается в терминал не полностью

Куда полезнее эта опция будет в том случае, если вам нужно отфильтровать файлы по размеру, а не сыскать что-то конкретное. Допустим, у вас на компьютере лежит массивный список тяжелых файлов, которые отнимают значимый объем пространства, а вы хотите провести некий аудит и чистку, чтобы это пространство хотя бы немного освободить. Например, для того чтобы найти все файлы в компьютере, которые весят больше 5 гигабайт, можно воспользоваться такой командой: find / -size +5000M -print.

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

Поиск по дате изменения файла

По названию этой опции понятно, что она ищет те файлы, которые редактировались за какой-то период времени. В частности, речь идет о количество дней от даты поиска (то есть момент, когда мы вводим команду). Например, если надо в домашней папке найти файлы и папки, которые подвергались каким-либо изменениям в последние 10 дней, то нужно ввести в терминал команду find ~ -mtime –10 -print

Другие команды для поиска

grep

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

Но если воспользоваться опцией -r, а в качестве локации поиска задать путь до папки, то grep разыщет файлы с указанным ранее названием.

Вот так, например: sudo grep -r «hello.js» ~.

whereis

Еще есть такая команда. У нее нет никаких опций и дополнений. Все, на что способна whereis - поиск расположения программ в системе. И работает она крайне топорно. Вводим команду, а следом за ней название программы, которую нужно отыскать. В ответ получим полный путь до исполняемого файла.

Ищем файлы, используя графический интерфейс

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

Поиск через меню оболочки

В Gnome 3 поиск прячется в меню Activities.

  • Кликаем по строчке Activities в верхнем левом углу над панелью избранных программ.
Рабочий стол Ubuntu с оболочкой Gnome 3

В последней версии Gnome это меню всегда закреплено в левой части панели инструментов

  • Затем нажимаем на поисковое поле, расположенное по центру в верхней части интерфейса.
Поисковое поле в меню Activities

Вот встроенный в систему поисковик

  • Вводим поисковой запрос.
Результаты поиска в меню Activities

Как видите, Ubuntu ищет не только по локальным ресурсам, но и в интернете. Это делает его отчасти полезнее поиска в терминале

  • Кликаем по найденному файлу, чтобы он тут же открылся.
Открытый файл hello.js

Файл открывается в подходящей программе, а не в файловом менеджере

Если манипуляции мышкой вам чужды (вы же все-таки пользователь Linux), то можно обойтись и без нее. Для включения меню Activities нажмите на клавиатуре клавишу Win (Cmd на клавиатурах Apple). Чтобы начать поиск, просто начните вводить свой запрос (ничего выделять не нужно). А для выбора файла из выдачи просто нажмите на клавишу «Ввод» (Enter).

Ищем через файловый менеджер

Панель избранных программ в Ubuntu

У вас может быть любой другой файловым менеджер

  • Ищем там кнопку включения поиска. Обычно она похожа на лупу. Это общепризнанный символ.
Интерфейс программы Nautilus

Иногда поле поиска отображается в виде строки

  • Вводим свой поисковой запрос и выбираем нужный объект.
Результаты поиска в Nautilus

Имеем схожий результат

Space Police

Переводчик. Копирайтер. Композитор. Люблю консьюмерские технологии, музыку и все смежные направления. Надеюсь дожить до «счастливого» киберпанк-будущего. Испытываю пассивную агрессию по отношению к РКН ;)

Понравилась статья?

Похожие статьи

похожая статья Устанавливаем Photoshop в Linux
юзер
Space Police

12 сентября в 11:44

похожая статья Удаляем Linux Mint
юзер
Space Police

24 октября в 14:23

похожая статья Устанавливаем Linux Mint
юзер
Space Police

24 октября в 15:15

Комментариев: 0