Как искать файлы в убунту
Поиск в Linux с помощью команды find
Утилита find представляет универсальный и функциональный способ для поиска в Linux. Данная статья является шпаргалкой с описанием и примерами ее использования.
Общий синтаксис
— путь к корневому каталогу, откуда начинать поиск. Например, find /home/user — искать в соответствующем каталоге. Для текущего каталога нужно использовать точку «.».
— набор правил, по которым выполнять поиск.
* по умолчанию, поиск рекурсивный. Для поиска в конкретном каталоге можно использовать опцию maxdepth.
Описание опций
Опция | Описание | |||||
---|---|---|---|---|---|---|
-name | Поиск по имени. | |||||
-iname | Регистронезависимый поиск по имени. | |||||
-type |
. | поиск в текущем каталоге; |
/ | поиск от корневого каталога; |
поиск в домашнем каталоге. |
Основные опции команды find.
Примеры использования команды find.
Самый простой вариант поиска, указываем путь и имя файла. Давайте найдем файл с именем file1:
Но если мы напишем не полностью имя, например «file», то файл с именем «file1» не найдется. Для этого нужно писать имя в кавычках и в конце добавить *, вот таким образом:
Но теперь нашлись файлы во всех вложенных директориях. А что если нам надо найти файл только в текущей директории или с уровнем вложенности 1 или 2?
Для этого используется опция maxdepth (глубина поиска), то есть, если мы хотим найти файл в директории поиска, без рекурсивного просмотра всех директорий:
Теперь нашлись файлы только в директории поиска.
Если хотим включить первый уровень внутри каталога поиска, тогда нужно указать maxdepth 2:
Как видно на скриншоте, теперь найден файл и в папке «Загрузки».
Нужно указывать опцию -maxdepth перед опцией -name.
Теперь разберем очень важную опцию поиска файла по размеру «-size».
Важно, если мы хотим найти файлы размером в килобайтах, нужно писать в конце k, для мегабайт M, для гигабайт G, для байт b. Важно соблюдать регистр.
Разберем пример, найдем файлы в домашней директории менее 10 килобайт с именем file*:
Нашлись все файлы в домашней директории и ее папках, размер которых менее 10 килобайт.
Теперь давайте найдем файлы в домашней директории, которые весят больше 100 мегабайт:
Нашелся один файл, который весит более 100 мегабайт.
Также можно искать файлы определенного размера, например, которые весят 1G или 1M:
Теперь переходим к поиску файлов, которые были созданы или модифицированы n количество дней назад.
Поиск файлов, которые были изменены или созданы менее 2 дней назад:
Также можно использовать опцию -user, чтобы найти только файлы определенного пользователя:
Возможности команды find поистине безграничны, мы можем использовать и регулярные выражения. К примеру, давайте уберем из поиска все скрытые файлы и директории.
Поиск файлов, которые были изменены или созданы более 100 дней назад:
В одной статье очень трудно перечислить все возможности этой команды поиска файлов и директорий. Это самое основное и часто используемое.
Помимо find для поиска файлов существует ещё команда locate.
Разница между ними в том, что locate использует собственную базу данных для хранения имен файлов. В то время, как find исследует директории в поисках заданного параметром командной строки имени файла.
Команда locate ищет файлы очень быстро, так как она производит поиск не по файловой системе, а по собственной базе данных.
Поэтому, перед использованием данной команды поиска следует использовать команду, которая обновит базу данных индексов файлов в системе:
Хотя это и не обязательно (система это делает периодически), просто если не выполнить её, то вам может вывести в поиске удаленные файлы или не вывести только что созданные.
Формат команды locate.
Вводится команда locate и имя файла, который хотим найти. И, конечно же, опции, которые разберем на примерах.
Примеры использования команды locate.
Но если мы ищем файл с названием «file», то не найдутся файлы с именами в другом регистре: File, FILE и т.д.
Чтобы поиск сделать регистронезависимым, то нужно использовать следующую опцию -i, то есть:
Если мы хотим ограничить число выводимых файлов в поиске по заданному параметру, мы ставим опцию -n и число:
То есть, данная команда с опцией -n 2 выведет нам только 2 первых найденных файла:
И напоследок, locate лучше выполнять с опцией -e, тогда будут отображены файлы, которые существуют в системе. Даже тогда, когда запись о файле находится в базе данных, все равно будет осуществлена проверка физического нахождения файла в системе:
Полезные команды whereis и which.
У нас установлены программы в системе и чтобы узнать размещение бинарных файлов, исходных кодов и руководств, относящихся к установленной программе, можно выполнить команду whereis. Для примера найдем информацию о пакете google-chrome:
Команда же which отображает полный путь к установленной программе. Также в качестве примера возьмем google-chrome:
Команда find в Linux
Очень важно уметь вовремя найти нужную информацию в системе. Конечно, все современные файловые менеджеры предлагают отличные функции поиска, но им не сравнится с поиском в терминале Linux. Он намного эффективнее и гибче обычного поиска, вы можете искать файлы не только по имени, но и по дате добавления, содержимому, а также использовать для поиска регулярные выражения.
Кроме того, с найденными файлами можно сразу же выполнять необходимые действия. В этой статье мы поговорим о поиске с помощью очень мощной команды find Linux, подробно разберем её синтаксис, опции и рассмотрим несколько примеров.
Основная информация о Find
Утилита find предустановлена по умолчанию во всех Linux дистрибутивах, поэтому вам не нужно будет устанавливать никаких дополнительных пакетов. Это очень важная находка для тех, кто хочет использовать командную строку наиболее эффективно.
Команда find имеет такой синтаксис:
find [ папка] [ параметры] критерий шаблон [действие]
Основные параметры команды find
Я не буду перечислять здесь все параметры, рассмотрим только самые полезные.
Критерии
Критериев у команды find в Linux очень много, и мы опять же рассмотрим только основные.
Примеры использования
А теперь давайте рассмотрим примеры find, чтобы вы лучше поняли, как использовать эту утилиту.
1. Поиск всех файлов
Показать все файлы в текущей директории:
Все три команды покажут одинаковый результат. Точка здесь означает текущую папку. В место неё можно указать любую другую.
2. Поиск файлов в определенной папке
Показать все файлы в указанной директории:
Искать файлы по имени в текущей папке:
Поиск по имени в текущей папке:
Не учитывать регистр при поиске по имени:
3. Ограничение глубины поиска
Поиска файлов по имени в Linux только в этой папке:
4. Инвертирование шаблона
Найти файлы, которые не соответствуют шаблону:
5. Несколько критериев
Поиск командой find в Linux по нескольким критериям, с оператором исключения:
Найдет все файлы, начинающиеся на test, но без расширения php. А теперь рассмотрим оператор ИЛИ:
Эта команда найдёт как php, так и html файлы.
6. Тип файла
По умолчанию find ищет как каталоги, так и файлы. Если вам необходимо найти только каталоги используйте критерий type с параметром d. Например:
Для поиска только файлов необходимо использовать параметр f:
6. Несколько каталогов
Искать в двух каталогах одновременно:
7. Поиск скрытых файлов
Найти скрытые файлы только в текущей папке. Имена скрытых файлов в Linux начинаются с точки:
8. Поиск по разрешениям
Найти файлы с определенной маской прав, например, 0664:
Права также можно задавать буквами для u (user) g (group) и o (other). Например, для того чтобы найти все файлы с установленным флагом Suid в каталоге /usr выполните:
Поиск файлов доступных владельцу только для чтения только в каталоге /etc:
Найти только исполняемые файлы:
9. Поиск файлов в группах и пользователях
Найти все файлы, принадлежащие пользователю:
Поиск файлов в Linux принадлежащих группе:
10. Поиск по дате модификации
Поиск файлов по дате в Linux осуществляется с помощью параметра mtime. Найти все файлы модифицированные 50 дней назад:
Поиск файлов в Linux открытых N дней назад:
Найти все файлы, модифицированные между 50 и 100 дней назад:
Найти файлы измененные в течении часа:
11. Поиск файлов по размеру
Найти все файлы размером 50 мегабайт:
От пятидесяти до ста мегабайт:
Найти самые маленькие файлы:
12. Поиск пустых файлов и папок
13. Действия с найденными файлами
Для выполнения произвольных команд для найденных файлов используется опция -exec. Например, для того чтобы найти все пустые папки и файлы, а затем выполнить ls для получения подробной информации о каждом файле используйте:
Удалить все текстовые файлы в tmp
Удалить все файлы больше 100 мегабайт:
Выводы
Вот и подошла к концу эта небольшая статья, в которой была рассмотрена команда find. Как видите, это одна из наиболее важных команд терминала Linux, позволяющая очень легко получить список нужных файлов. Ее желательно знать всем системным администраторам. Если вам нужно искать именно по содержимому файлов, то лучше использовать команду grep.
Поиск файла в Linux
В Linux существует множество способов поиска, как в графическом интерфейсе, так и через командную строку. В сегодняшней статье мы разберём, как выполнять поиск файла в Linux с помощью всех этих средств. Но начнём с программ, у которых есть графический интерфейс.
Поиск файла в Linux через графический интерфейс
1. Главное меню системы
Главное меню операционной системы позволяет, как правило, не только запускать программы, но и искать их, а также искать файлы. Такая возможность есть как в Gnome, так и в KDE. В главном меню Gnome вы можете ввести нужную фразу для поиска:
Но у такого поиска есть значительный недостаток. Он рассчитан больше на поиск программ, а не на поиск файлов, поэтому ищет только в домашней папке и не углубляется далеко в файловую систему.
2. Файловые менеджеры
Большинство файловых менеджеров тоже предоставляют возможности поиска файлов, в том числе Dolphin и Nautilus. Здесь вы можете выбрать папку, в которой будет выполняться поиск, а также настроить дополнительные параметры поиска. В Nautilus для запуска поиска вам достаточно нажать кнопку со значком лупы, а потом ввести данные в строку поиска. Например, найдём все фото, сделанные 18 ноября.
Открыв стрелочку дополнительных параметров можно выбрать период, за который был создан интересующий нас документ, а также тип документа.
3. Gnome Search
Утилита Gnome Search по умолчанию поставляется не всегда, но вы можете установить её из центра приложений или через официальные репозитории. Она предоставляет такие же возможности, как и файловый менеджер, плюс здесь можно искать по содержимому файлов, что иногда очень удобно.
4. SearchMonkey
5. Recoll
Если вам приходится работать с большой библиотекой текстовой информации и искать данные по содержимому файла, то вам будет полезна утилита Recoll. Это полноценный поисковый движок для поиска документов. Установить программу можно из официальных репозиториев:
sudo apt install recoll
Сразу же после запуска она предложит вам создать индекс документов, которые есть в вашем домашнем каталоге.
И только после создания индекса вы сможете выполнять по нему поиск. Далее, вам будет достаточно ввести запрос, например Wi-Fi, и вы увидите все файлы, которые содержат это слово с примерами вхождений, отсортированные по релевантности:
Для работы с большим количеством текстовых данных это может быть очень удобно. Программа понимает множество офисных форматов, среди которых pdf, djvu, doc, docx, odf, а также умеет находить такие файлы в архивах.
Поиск файлов в Linux через терминал
Если графические утилиты рассчитаны на работу обычного пользователя и поиск в домашней папке, то консольные программы предоставляют более гибкие возможности поиск для всех файлов, включая системные и виртуальные.
1. find
Более подробную информацию об этой команде читайте в статье команда find.
2. locate
Команда locate считается устаревшей и уже была удалена из многих дистрибутивов. Она выполняет поиск не в реальном времени, как find, а по ранее созданной базе файлов, но она делает только поиск файла по имени Linux. Вы вводите слово, которое вас интересует, и утилита выдаёт все известные ей файлы, имя которых содержит такое слово. Возможно использовать регулярные выражения. Например, найдем все файлы, в имени которых содержится passwd:
Обратите внимание, что если файл был добавлен после создания базы, то он найден не будет.
3. grep
Утилита grep позволяет не только фильтровать вывод других команд, но и искать по содержимому файловой системы. Для этого достаточно использовать опцию -r и указать папку, в которой надо искать текст. Например, найдём все файлы в /etc/, которые содержат строчку error_reporting:
С помощью grep очень удобно искать, где находится нужная конфигурация или же проверять, не содержат ли файлы с кодом чего-нибудь подозрительного. Подробнее про использование grep читайте в статье поиск текста в файлах Linux.
4. whereis
Утилита whereis достаточно простая и решает только одну задачу. Она показывает, где находится исполняемый файл, переданной ей программы. Например, если мы хотим узнать, где лежит grep, достаточно выполнить:
Выводы
В этой статье мы разобрали, как выполнить поиск файла в Linux различными способами, начиная от графического интерфейса и заканчивая терминалом. Как видите, здесь есть множество вариантов, которые позволят вам решить любые задачи по поиску файлов. Возможно, вам также будет интересна статья о том, как узнать pid процесса в Linux, который использует файл, порт или изменяет данные.
Нет похожих записей
Оцените статью:
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
16 комментариев
Эту строку нужно раскомментировать и перезапустить сессию пользователя.
1. А зачем? У root-а совсем иные задачи. Я под root-ом не имею привычки работать над проектами. Root предназначен совсем-совсем для иных целей. Это ж не Винда!
2. Ага. Можно и так. Вроде даже когда-то так тоже делал. А в целом, на брать дополнительно пару символов «-n» абсолютно не напрягает (руки-то не на мышке, а на клаве). Ну и есть волшебная клавиша «Tab», и история команд.
В общем, кому как нравится. Мне нравится так, и кроме того, я уже привык делать именно так. Никого не агитирую делать именно так, как я делаю. Просто предложил свой способ. А каждый сам найдёт для себя единственный удобный для него способ. Ага.
Ага. Я тоже «подкрасил».
Вот только все возможности в одну статью сваливать я подумал, что это не хорошо. Ну раз уж Вы затронули и этот вопрос, то добавлю.
Строки 86-87 в том же файле:
# colored GCC warnings and errors
export GCC_COLORS=’error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01′
Иногда приходится искать по проекту использование (вызовы) той или иной функции или какие-то другие вещи. Поэтому я интенсивно пользуюсь утилитой grep.
Это потому, Александр Антонович, что вам не хватает внутренней дисциплины и привычки комментировать свой код. Определили функцию в каком-то файле, сделали вызов функции в другом файле, напишите в файле с определением функции соответствующий комментарий с адресом файла, где есть вызов, комментарии для этого и нужны, чтобы потом не делать судорожные поиски и не блукать в трёх соснах под солнцем, но во тьме. Вы даже представить себе не можете, как облегчите свою жизнь в будущем, потратив 3 секунды на полезный комментарий. :))) При этом приставка к слову «программист», которой вы себя обзываете, сама отпадёт. Ни можно так про себя! ;)) Вас молодёжь читает. Пример ещё брать будет.
Ну и для описанного вами случая некоторые программистские IDE имеют соответствующие специализированные инструменты для поиска по проекту. Иногда это бывает удобней чем grep, хотя grep могуч конечно.
Оказалось, не угадал!
В общем, пришлось перемещать LCD от вокодера на радиоканал.
Но это ещё ягодки! Потом, когда поднялся вопрос экономии питания, посыпались ягодки. Оказалось, что вокодер даже в режиме сна жрёт довольно-таки много. Пришлось отказаться от этого режима, а тупо отрубать ему питание. Получилось. Но возникла другая проблема.
По логике работы устройства возникают ситуации, когда LCD работает с выключенным вокодером. Но вокодер (собака!), будучи вообще обесточенным, умудряется получить питание и работать через сигнальные цепи, которые являются общими для LCD и вокодера.
Всё бы ничего, но оказалось, что и радиоканал тоже способен нормально запитываться от сигнальных цепей. По идее нужно менять МК на другой, у которого три SPI.
- Wolfenstein youngblood trial edition что это
- Как заряжать часы haylou solar