как узнать где находится файл в линукс

Как выполнить поиск файлов и папок в Linux

В качестве вступительного слова дадим некоторое описание того, как вообще можно совершать поиск в linux. Для этих целей есть множество программ, но некоторые из них уже стали классикой поиска в linux. Подчеркнем, в данной статье мы сконцентрируемся исключительно на linux. Это означает, что даже если вы встретите утилиты с теми же самыми названиями в Solaris или операционных системах на ядрах BSD, приведенные советы могут работать не всегда. Так же это относится к busybox, которая реализует лишь небольшую часть функциональности оригинальных утилит.

Поиск файла по имени при помощи утилиты locate

Если же вы получили сообщение о том, что команда не найдена, возможно её нужно установить. Для Debian-based дистрибутивов (Ubuntu, Mint) установить её можно командой:

# apt-get install mlocate

Пользователям RedHat, CentOS и Fedora стоит выполнить

# yum install mlocate

Поиск в Linux при помощи утилиты find

Куда более мощным и гибким инструментом для поиска файлов и папок в Linux выступает команда find. Её синтаксис упрощенно выглядит так:

find [path. ] [expression]

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

Чтобы выполнить в linux поиск файла по имени по всей файловой системе нужно ввести:

Учтите, что в данном случае поиск будет идти по имени файла в точности соответствующему заданному. Чтобы сымитировать поведение команды locate для find следует ввести:

«*» означает любое количество любых символов. Это дает нам возможность также производить поиск файлов по расширению:

Поиск файла по дате

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

Данная команды выведет все файлы из каталога /home, измененные не более 5-ти дней назад.

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

А так, например, можно выполнит поиск файлов по размеру:

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

Поиск папки

Здесь ключ «-type» указывает на тип. На текущий момент времени find поддерживает следующие типы:

Подробнее о различных параметрах поиска find вы можете почитать, введя команду

Поиск текста в Linux при помощи утилиты grep

Итак, чтобы выполнить поиск строки по всем файлам в каталоге, например /etc следует ввести

Такая команда выведет имена всех файлов, в которых удастся найти заветные 4 буквы «root». Здесь ключ «-l» заставляет grep выводить только имена файлов. Т.е. если вы хотите увидить ещё и ту саму строку, где удалось найти запрашиваемое слово, то «-l» стоит не указывать. Ключ «-r» выполняет поиск не только по /etc, но и по всем файлам во всех подпапках. И наконец ключ «-i» говорит не принимать во внимание регистр, т.е. grep будет искать не только слово «root», но и «ROOT», и «rOOt». Вы поняли

Конечно, вмемогущий grep поддерживает регулярные выражения. Чтобы выполнить, например, поиск строки, явно начинающийся всё с того же слова, введите

Крышка в начале слова «root» обязывает grep выводит только те файлы, где слово «root» стоит в начале строки. И таких трюков достаточно много. Если вы еще не знакомы с regex, то стоит начать хотябы с википедии

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

🔥 Популярное

Руководство по команде grep в Linux

15 примеров команды PING для диагностики сети

Рекурсивно найти слово в файлах и папках Linux

15 примеров CURL в Linux

👌 Похожее

Еще 15 полезных примеров использования cURL

Использование опций команды apt-get для очистки системы

Команда SCP Linux: безопасное копирование и передача файлов

Как найти файл в Linux? Руководство по команде find с примерами

Никто не спрячется

Когда нужно найти какой-нибудь файл или папку в системе Linux в голову сразу приходит команда find. Она проста в использовании и имеет множество разных опций, которые позволяют оптимизировать поиск файлов. Далее приведём несколько примеров использования этой команды.

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Поиск папок

Чтобы сделать поиск по папкам команде find нужно передать параметр type d. Таким образом мы скажем команде find вести поиск только по директориям:

Поиск скрытых файлов

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

Читайте также:  как узнать кто фейк в инстаграме создал

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

Команда find дает возможность вести поиск файлов размером больше, меньше или равным указанному значению. Чтобы найти файл размером больше 10Мб нужно ввести команду:

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

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

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

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

Найти файл, которого нет в списке

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

Указываем максимальную глубину поиска

По умолчанию, команда find ищет файлы во всех директориях и поддиректориях. Допустим, если мы в качестве пути для поиска укажем корневую директорию «/», то система будет искать искомый файл по всему жесткому диску. Мы можем ограничить область поиска командой maxdepth указав ему насколько глубоко нужно искать файл.

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

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

Команда find также позволяет вести поиск по пустым файлам и директориям. Для этого команде добавляем флаг empty. Следующие две команды позволяют найти пустые файли и папки. Для поиска папок к строке поиске добавляет ключ d:

Так же можно автоматически удалять найденные пустые файлы или папки. Следующая команда найдет и удалит все пустые файлы в указанной папке и всех подпапках:

Поиск самого большого файла или папки

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

Заметьте, что при поиске мы прибегнули к двум другим удобным инструментам Linux: sort и tail. Sort отсортирует файл по их размеру, а tail покажет самый последний файл в списке, который и будет самым большим файлом/папкой. Мы можем изменить команду так, чтобы она выводила пять самых больших файлов для этого нужно воспользоваться следующей командой:

Также можно вывести файлы с самым меньшим размером. Следующая команда позволит вывести пять самых маленьких по объёму файлов:

Чтобы найти самую большую папку по указанному пути нужно ввести команду указанную ниже:

Поиск файлов с атрибутом setuid

На скриншоте мы добавили еще параметр exec чтобы ограничить вывод команды find. Полная команда выглядит так:

Мы можем заменить root любым другим пользователем или просто опустить этот параметр и найти все файлы с правами запуска от имени root-а:

Поиск файлов с атрибутом sgid

Команда поиск файлов с атрибутом sgid почти такая же как и для SUID с той разницей, что вместо 4000 прописываем 2000:

Так же можем найти файлы, которые имеют оба указанных атрибута:

Исключение из вывода файлов и папок, к которым нет доступа

Чтобы вести поиск пользователь должен иметь доступ на чтение в указанной папке и подпапках. Если нет соответствующих прав, то мы получим ошибки как на скриншоте ниже.

Этот случай особо актуален при поиске в корневой директории. Согласитесь сильно засоряет вывод, но этого можно избежать если перенаправить вывод stderr в stdout и передать grep для обработки. Следующей командой мы выведем все результаты работы команды find кроме строк, содержащих слова «Permission denied»^

Поиск файлов изменённых за последние X дней

Чтобы найти файлы, которые были изменены за указанный период времени используется параметр mtime. Ниже приведены несколько примеров для поиска файлов, изменённых за последний 30 дней, больше 30 дней и меньше чем за 30 дней:

Чтобы вывести более детальную информацию о найденных файлах можно указать параметр exec:

Сортировка результатов по времени

При необходимости отсортировать результате по времени можно воспользоваться параметром printf и утилитой sort:

По умолчанию sort упорядочивает файлы от старых к новым. Чтобы указать обратный порядок сортировки достаточно добавить ключ r к команде sort:

Разница между locate и find

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

Читайте также:  как узнать где находится письмо по номеру квитанции

Утилита locate ведёт поиск по базе, которая содержит все имена файлов, находящихся в системе. Так как команда locate не ищет указанный файл по всей системе, то она намного эффективней утилиты find. Но с другой стороны база данных этой утилиты обновляется раз в день, что не позволяет найти файлы, созданные раньше, чем 24 часов. Базу данных можно вручную обновлять командой updatedb.

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

Если же поиск ведётся в папке, где мало файлов, то лучше пользоваться командой find.

Нагрузка CPU командой find

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

Просмотреть состояние процессора можно командой:

Чтобы понизить приоритет Ввода/Вывода для команды find, можно ввести следующую команду:

А чтобы понизить приоритет использования CPU, нужно ввести следующую команду:

Или можно эти две команды комбинировать, чтобы обеспечить низкий приоритет как для Ввода/Вывода, так и для CPU.

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Источник

Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.

5 способов поиска файлов в Linux, используя терминал.

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

1) find : Для поиска файлов из командной строки вы можете использовать команду “find”. У этой команды следующий синтаксис:

find path criteria action

“path” Секция для указания директории поиска. Если ничего не указано поиск идет по текущей директории.

“criteria” Опции поиска.

“action” Опции, которые влияют на состояние поиска или контролируют его, например,

4) which : Команда “which” ищет все пути перечисленные в переменной PATH для указанной команды.

5) type :

При вызове без опций показывает, как имена будут интерпретироваться

при использовании в качестве имени команды. Если использована опция -a, команда type выдает список всех каталогов, где есть выполняемый файл с

соответствующим именем. В список включаются также псевдонимы и функции,

если только не указана опция -p. К

хэшу команд не обращаются, если указана опция -a. Команда type возвращает 0,

если хоть один из аргументов найден, и 1 в противном случае.

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

Источник

Поиск файлов в Linux или Изучаем команду find

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

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

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

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

— поиск в домашнем каталоге.

Что до опций, то тут гораздо бОльший список, с которым крайне необходимо внимательно ознакомиться (это в будущем очень поможет!). Итак, основные опции команды find:

Рассмотрим некоторые примеры применения команды find:

Наиболее часто применяемой опцией является опция -name, которая производит поиск файлов по имени.

выведет на экран список файлов домашнего каталога, начинающихся на test.

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

Вышеуказанная команда позволит отыскать все файлы в системе, начинающиеся с букв от a до j.

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

Если потребуется найти файлы, имеющие определенные режимы доступа, вам поможет опция -perm, которая легко в этом поможет.

К примеру, выполним поиск файлов с режимом доступа 775 (владелец и группа имеют полные права и ограничение на запись имеют остальные пользователи), находящихся в текущем каталоге :

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

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

Читайте также:  зоомагазин в пензе адреса

Поиск файлов определенного пользователя или группы

Поиск файлов какого-либо определенного пользователя крайне прост в своей реализации. Для этого достаточно выполнить команду:

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

Для того, чтобы найти файлы, принадлежащие определенной группе (к примеру managers), выполним команду:

Для поиска файлов несуществующих пользователей или групп можно воспользоваться опциями -nouser и -nogroup:

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

Одной из удобных возможностей команды find, является возможность поиска файлов определенного типа. Рассмотрим варианты использования опции -type:

Поиск символических ссылок в каталоге /etc:

Вывод на экран списка каталогов, присутствующих в каталоге /mnt/raid

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

Опция -size позволяет произвести поиск файлов определенного размера и имеет следующий вид при выполнении:

Вышеуказанная команда отыщет и отобразит на экране файлы размером 2 мегабайта, находящийся в текущем каталоге. Если, к примеру, необходимо найти файлы размером менее 500 килобайт, то вид команды будет следующий:

Если нужно найти файлы размером более 600 мегабайт, то применим команду:

Опция -mtime позволит вам найти файлы, изменявшиеся в какой-то срок времени.

Если нам необходимо обратное, к примеру, отыскать файлы, которые не изменялись неделю, применим команду:

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

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

IT-поддержка

Оказываем квалифицированную помощь в поддержке Вашей IT-инфраструктуры

Источник

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

How to Find Files in Linux Using the Command Line

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-perm Опция позволяет искать файлы на основе прав доступа к файлам.

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

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

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

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

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

Вывод

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

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

Источник

Советы мастера