линукс как найти файл по имени

Линукс как найти файл по имени

В этой статье поговорим о командах поиска файлов и директорий в терминале, таких как find, locate, whereis, which.

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

Формат команды find.

В общем виде команда find выглядит следующим образом:

Путь поиска команды find.

В обычном случае мы просто указываем полный путь к нужному каталогу, например:

Но в качестве пути поиска можно указывать следующие значения:

. поиск в текущем каталоге;
/ поиск от корневого каталога;
поиск в домашнем каталоге.

Основные опции команды 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 – мощный инструмент сисадмина

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

Команда find – это невероятно мощный инструмент, позволяющий искать файлы не только по названию, но и по:

Данная команда будет очень полезна системным администраторам для:

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

Синтаксис команды find:

Поиск по имени

Следующая команда ищет файл s.txt в текущем каталоге:

В данном случае критерий -name учитывает только символы нижнего регистра и файл S.txt не появиться в результатах поиска. Чтобы убрать чувствительность к регистру необходимо использовать –iname.

Можно использовать название каталога для поиска. Например, чтобы с помощью команды find найти все png изображения в каталоге home:

Если выдает слишком много ошибок в отказе разрешения, тогда можно добавить в конец команды – 2> /dev/null. Таким образом сообщения об ошибках будут перенаправляться по пути dev/null, что обеспечит более чистую выдачу.

Поиск по типу файла

Критерий -type позволяет искать файлы по типу, которые бывают следующих видов:

Например, указав критерий -type d будут перечислены только каталоги:

Поиск по размеру файла

Допустим, что вам необходимо найти все большие файлы. Для таких ситуаций подойдет критерий -size.

В данном случае поиск выведет все файлы более 1 Гб (+1G).

Единицы измерения файлов:

Поиск пустых файлов и каталогов

Критерий -empty позволяет найти пустые файлы и каталоги.

Поиск времени изменения

Критерий -cmin позволяет искать файлы и каталоги по времени изменения. Для поиска всех файлов, измененных за последний час (менее 60 мин), нужно использовать -60:

Таким образом можно найти все файлы в текущем каталоге, которые были созданы или изменены в течение часа (менее 60 минут).

Для поиска файлов, которые наоборот были изменены в любое время кроме последнего часа необходимо использовать +60.

Поиск по времени доступа

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

Таким образом можно найти файлы, к которым не обращались последние полгода (180 дней).

Поиск по имени пользователя

Опция –user username дает возможность поиска всех файлов и каталогов, принадлежащих конкретному пользователю:

Таким образом можно найти все файлы пользователя tisha в каталоге home, а 2>/dev/null сделает выдачу чистой без ошибок в отказе доступа.

Поиск по набору разрешений

Критерий -perm – ищет файлы по определенному набору разрешений.

Поиск файлов с разрешениями 777.

Операторы

Для объединения нескольких критериев в одну команду поиска можно применять операторы:

Например, чтобы найти файлы размером более 1 Гбайта пользователя tisha необходимо ввести следующую команду:

Если файлы могут принадлежать не только пользователю tisha, но и пользователю pokeristo, а также быть размером более 1 Гбайта.

Перед скобками нужно поставить обратный слеш «\».

Действия

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

-delete

Полезен, когда необходимо найти и удалить все пустые файлы, например:

Перед удалением лучше лишний раз себя подстраховать. Для этого можно запустить команду с действием по умолчанию -print.

Данное действие является особенным и позволяет выполнить команду по вашему усмотрению в результатах поиска.

С помощью –exec можно написать альтернативу команде –delete и применить ее к результатам поиска:

Другой пример использования действия -exec:

Заключение

Команду find можно использовать для поиска:

С полученными результатами можно сразу выполнять различные действия, такие как:

Команда find может сильно облегчить жизнь системному администратору, а лучший способ овладеть ей – больше практиковаться.

Источник

Поиск файлов в Linux

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

Поиск через графический интерфейс

Главное меню

С помощью главного меню ОС вы можете не только искать и запускать программы, но также и выполнять поиск файлов. Подобный функционал присутствует во многих окружениях рабочего стола (KDE, GNOME, Xfce и пр.). Например, в KDE это представлено следующим образом:

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

Файловые менеджеры

Поиск по содержимому в Dolphin:

KFind

В KDE, помимо вышеупомянутых инструментов поиска, также есть замечательная утилита под названием KFind. С её помощью вы можете точно настроить параметры поиска (указать имя файла, его тип и путь поиска, обычный текстовый поиск или мета-поиск, дату изменения, размер, пользователя, группу и пр.). Она также позволяет сохранять результаты поиска в виде простого текстового списка URL-адресов найденных файлов:

SearchMonkey

SearchMonkey позволяет выполнять поиск файла, как по имени, так и по его содержимому, по диапазону дат и пр. Но главное преимущество SearchMonkey — это возможность везде применять регулярные выражения.

Поиск с применением регулярного выражения в SearchMonkey:

Recoll

Recoll — это приложение (поисковый движок) для полнотекстового поиска, выполняющее поиск ваших данных по содержимому, а не по внешним атрибутам (например, по имени файла). Вам не нужно запоминать, в каком файле или сообщении электронной почты вы хранили ту или иную информацию. Необходимо лишь указать слова (или выражения), которые должны или не должны присутствовать в искомом тексте, и взамен вы получите список соответствующих документов, упорядоченных таким образом, что первыми идут наиболее релевантные из них (подобно поисковым системам Интернета).

Установить программу можно из официальных репозиториев через командную строку:

sudo apt-get install recoll

Или через графический интерфейс:

Поиск файлов через терминал. Команда find

Команда find — производит поиск файлов и каталогов на основе заданного пользователем выражения и может выполнять назначенные пользователем действия над каждым найденным файлом.

Общий синтаксис команды find выглядит следующим образом:

find [опции] [путь. ] [выражение]

опции — аргументы, управляющие обработкой символьных ссылок, параметрами отладки и методом оптимизации;

путь — начальный каталог (или каталоги), в которых команда find будет искать файлы;

выражение — состоит из параметров, шаблонов поиска и действий, разделенных операторами.

Давайте рассмотрим следующий пример:

путь /var/www — задает каталог, в котором будет выполняться поиск;

Поиск файлов по имени

Например, для поиска файла document.pdf в каталоге /home/linuxize можно применить следующую команду:

Критериям поиска вышеприведенной команды будут соответствовать как Document.pdf, так и DOCUMENT.pdf и т.д.

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

Поиск файлов по расширению аналогичен поиску файлов по имени. Например, чтобы найти внутри каталога /var/log/nginx все файлы, заканчивающиеся на .log.gz, необходимо выполнить:

Поиск файлов по типу

Иногда вам может потребоваться выполнить поиск файлов определенного типа: обычные файлы, каталоги или символические ссылки. В Linux, как вы помните, всё является файлом.

l — символьная ссылка;

c — символьные устройства;

b — блочные устройства;

p — именованный канал (FIFO);

Например, чтобы найти все папки в текущем рабочем каталоге, используйте:

Поиск файлов по размеру

b — 512-байтовые блоки (по умолчанию);

w — двухбайтовые слова;

Следующая команда найдет все файлы размером 1024 байта в каталоге /tmp:

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

Если вы хотите выполнить поиск файлов размером более 1 МБ, то вам нужно использовать символ плюса + :

Вы даже можете искать файлы в пределах диапазона размеров. Следующая команда найдет все файлы размером от 1 до 2 МБ:

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

Команда find также может выполнять поиск файлов на основе даты их последнего изменения или времени доступа к ним.

Допустим, несколько дней назад вы изменили один из конфигурационных файлов dovecot, но забыли, какой именно. Вы можете легко отфильтровать все файлы в каталоге /etc/dovecot/conf.d, которые заканчивается на .conf и были изменены за последние пять дней:

Поиск файлов по правам доступа

Например, чтобы найти внутри каталога /var/www/ravesli все файлы с разрешением 644, вы должны использовать:

Рассмотрим следующий пример команды:

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

Поиск файлов по владельцу

Например, для поиска всех файлов и каталогов, принадлежащих пользователю ravesli, вы должны выполнить команду:

Вот еще один пример. Допустим, вы хотите найти все файлы, принадлежащие пользователю www-data, и изменить владельца соответствующих файлов с www-data на nginx. Вам нужно выполнить следующий набор команд:

Поиск и удаление файлов

Например, чтобы удалить из каталога /var/log/ все файлы, заканчивающиеся на .temp, применяется следующий набор команд:

Запись результатов поиска в файл

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

Она производит поиск в каталоге /etc всех файлов, имеющих расширение .conf, и записывает результат в файл conf_search.

Поиск файлов через терминал. Команда locate

Стоит заметить, что если файл появился в системе уже после создания базы, то он не будет найден.

Поиск файлов через терминал. Команда grep

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

Поиск файлов через терминал. Команда whereis

Заключение

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

Поделиться в социальных сетях:

26 команд в Linux, которые должен знать каждый сисадмин

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

Стоит добавить, что для обновления базы файлов, по которой осуществляется поиск с командой “locate”, есть команда “updatedb”.
А пакет, например, для Ubuntu или CentOS, в котором есть locate и updatedb — mlocate

Добавить комментарий Отменить ответ

Источник

Поиск в Linux с помощью команды find

Утилита find представляет универсальный и функциональный способ для поиска в Linux. Данная статья является шпаргалкой с описанием и примерами ее использования.

Общий синтаксис

путь к корневому каталогу, откуда начинать поиск. Например, find /home/user — искать в соответствующем каталоге. Для текущего каталога нужно использовать точку «.».

набор правил, по которым выполнять поиск.

* по умолчанию, поиск рекурсивный. Для поиска в конкретном каталоге можно использовать опцию maxdepth.

Описание опций

Тип объекта поиска. Возможные варианты:

Также доступны логические операторы:

Полный набор актуальных опций можно получить командой man find.

Примеры использования find

Поиск файла по имени

1. Простой поиск по имени:

* в данном примере будет выполнен поиск файла с именем file.txt по всей файловой системе, начинающейся с корня /.

2. Поиск файла по части имени:

* данной командой будет выполнен поиск всех папок или файлов в корневой директории /, заканчивающихся на .tmp

3. Несколько условий.

а) Логическое И. Например, файлы, которые начинаются на sess_ и заканчиваются на cd:

б) Логическое ИЛИ. Например, файлы, которые начинаются на sess_ или заканчиваются на cd:

в) Более компактный вид имеют регулярные выражения, например:

* где в первом поиске применяется выражение, аналогичное примеру а), а во втором — б).

* в данном примере мы воспользовались логическим оператором !.

Поиск по дате

1. Поиск файлов, которые менялись определенное количество дней назад:

* данная команда найдет файлы, которые менялись более 60 дней назад.

* покажет все файлы, которые менялись, начиная с 02.11.2019 00:00.

* найдет все файлы, которые менялись в промежутке между 31.10.2019 и 01.11.2019 (включительно).

* все файлы, к которым обращались с 08.10.2019.

* все файлы, к которым обращались в октябре.

* все файлы, созданные с 07 сентября 2019 года.

* файлы, созданные с 07.09.2019 00:00:00 по 09.09.2019 07:50

По типу

Искать в текущей директории и всех ее подпапках только файлы:

* f — искать только файлы.

Поиск по правам доступа

1. Ищем все справами на чтение и запись:

2. Находим файлы, доступ к которым имеет только владелец:

Поиск файла по содержимому

* в данном примере выполнен рекурсивный поиск всех файлов в директории / и выведен список тех, в которых содержится строка content.

С сортировкой по дате модификации

* команда найдет все файлы в каталоге /data, добавит к имени дату модификации и отсортирует данные по имени. В итоге получаем, что файлы будут идти в порядке их изменения.

Лимит на количество выводимых результатов

Самый распространенный пример — вывести один файл, который последний раз был модифицирован. Берем пример с сортировкой и добавляем следующее:

Поиск с действием (exec)

1. Найти только файлы, которые начинаются на sess_ и удалить их:

* -print использовать не обязательно, но он покажет все, что будет удаляться, поэтому данную опцию удобно использовать, когда команда выполняется вручную.

2. Переименовать найденные файлы:

3. Вывести на экран количество найденных файлов и папок, которые заканчиваются на .tmp:

* в данном примере мы ищем все каталоги (type d) в директории /home/user и ставим для них права 2700.

5. Передать найденные файлы конвееру (pipe):

* в данном примере мы использовали find для поиска строки test в файлах, которые находятся в каталоге /etc, и название которых заканчивается на .conf. Для этого мы передали список найденных файлов команде grep, которая уже и выполнила поиск по содержимому данных файлов.

6. Произвести замену в файлах с помощью команды sed:

* находим все файлы в каталоге /opt/project и меняем их содержимое с test на production.

Чистка по расписанию

Команду find удобно использовать для автоматического удаления устаревших файлов.

Открываем на редактирование задания cron:

* в данном примере мы удаляем все файлы и папки из каталога /tmp, которые старше 14 дней. Задание запускается каждый день в 00:00.
* полный путь к исполняемому файлу find смотрим командой which find — в разных UNIX системах он может располагаться в разных местах.

Источник

Найти команду в Linux (поиск файлов и каталогов)

Команда find — один из самых мощных инструментов в арсенале системных администраторов Linux. Он ищет файлы и каталоги в иерархии каталогов на основе заданного пользователем выражения и может выполнять указанное пользователем действие для каждого совпадающего файла.

find командный синтаксис

Общий синтаксис команды find следующий:

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

Давайте посмотрим на следующий пример:

Найти файлы по имени

Приведенная выше команда будет соответствовать «Document.pdf», «DOCUMENT.pdf» и т. Д.

Найти файлы по расширению

Важно отметить, что вы должны либо заключить шаблон в кавычки, либо экранировать символ звездочки * обратной косой чертой чтобы он не интерпретировался оболочкой при использовании подстановочного знака.

Найти файлы по типу

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

Типичным примером может быть рекурсивное изменение разрешений файлов веб-сайтов на 644 и разрешений каталогов на 755 с помощью команды chmod :

Найти файлы по размеру

Следующая команда найдет все файлы размером ровно 1024 байта внутри каталога /tmp :

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

Вы даже можете искать файлы в пределах диапазона размеров. Следующая команда найдет все файлы 2MB от 1 до 2MB :

Найти файлы по дате изменения

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

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

Найти файлы по разрешениям

Рассмотрим следующий пример команды:

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

Найти файлы по владельцу

Вот реальный пример. Допустим, вы хотите найти все файлы, принадлежащие пользователю www-data и изменить владельца совпадающих файлов с www-data на nginx :

Найти и удалить файлы

Выводы

Мы показали вам, как использовать команду find с различными параметрами и критериями.

Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • линукс как запустить файл run
  • линукс как запустить программу через консоль
  • линукс как запустить графический интерфейс
  • линукс как добавить пользователя в группу sudo
  • линукс как выглядит рабочий стол

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии
    Опция Описание
    -name Поиск по имени.
    -iname Регистронезависимый поиск по имени.
    -type