Команда find – позволяет искать файлы. Команда find в Linux производит поиск файлов и папок на основе заданных критериев и выполнять действия
Основная информация о Find
Find — это одна из наиболее важных и часто используемых утилит системы Linux. Это команда для поиска файлов и каталогов на основе специальных условий. Ее можно использовать в различных обстоятельствах, например, для поиска файлов по разрешениям, владельцам, группам, типу, размеру и другим подобным критериям.
Утилита find предустановлена по умолчанию во всех Linux дистрибутивах, поэтому вам не нужно будет устанавливать никаких дополнительных пакетов. Это очень важная находка для тех, кто хочет использовать командную строку наиболее эффективно.
Команда find имеет такой синтаксис:
find [папка] [параметры] критерий шаблон [действие]
Папка — каталог в котором будем искать
Параметры — дополнительные параметры, например, глубина поиска, и т д
Критерий — по какому критерию будем искать: имя, дата создания, права, владелец и т д.
Шаблон — непосредственно значение по которому будем отбирать файлы.
Источник: http://losst.ru/komanda-find-v-linux
Об этой статье
Эту страницу просматривали 35 589 раз.
Источник: http://ru.wikihow.com/найти-файл-в-Linux
Введение
Одна из наиболее распространенных проблем, с которыми сталкиваются пользователи, впервые работающие с Linux — поиск нужных файлов. В данном руководстве рассмотрено использование команды find, которая позволяет решить эту проблему и осуществлять поиск файлов с различными фильтрами и параметрами.
Источник: http://itproffi.ru/poisk-fajlov-v-linux-utilita-find/
Найти файлы по имени
Поиск файлов по имени, вероятно, является наиболее распространенным использованием find команды. Чтобы найти файл по имени, используйте -name опцию после имени файла, который вы ищете.
Например, для поиска файла с именем document.pdf в /home/baks каталоге вы должны использовать следующую команду:
find /home/baks -type f -name document.pdf
Чтобы запустить поиск без учета регистра, измените -name параметр с помощью -iname:
find /home/baks -type f -iname document.pdf
Команда выше будет соответствовать «Document.pdf», «DOCUMENT.pdf» ..etc.
Источник: http://baks.dev/article/terminal/how-to-find-files-in-linux-using-the-command-line
Основные параметры команды find
Я не буду перечислять здесь все параметры, рассмотрим только самые полезные.
- -P никогда не открывать символические ссылки
- -L — получает информацию о файлах по символическим ссылкам. Важно для дальнейшей обработки, чтобы обрабатывалась не ссылка, а сам файл.
- -maxdepth — максимальная глубина поиска по подкаталогам, для поиска только в текущем каталоге установите 1.
- -depth — искать сначала в текущем каталоге, а потом в подкаталогах
- -mount искать файлы только в этой файловой системе.
- -version — показать версию утилиты find
- -print — выводить полные имена файлов
- -type f — искать только файлы
- -type d — поиск папки в Linux
Источник: http://losst.ru/komanda-find-v-linux
Ищем файлы, используя графический интерфейс
Изощрения с терминалом нужны в том случае, если вы специалист, и вам нужны максимально гибкие инструменты для поиска файлов. Простым смертным же в большинстве случае хватит и того поиска, что есть в графической среде операционной системы.
Поиск через меню оболочки
В Gnome 3 поиск прячется в меню Activities.
- Кликаем по строчке Activities в верхнем левом углу над панелью избранных программ.
В последней версии Gnome это меню всегда закреплено в левой части панели инструментов
- Затем нажимаем на поисковое поле, расположенное по центру в верхней части интерфейса.
Вот встроенный в систему поисковик
- Вводим поисковой запрос.
Как видите, Ubuntu ищет не только по локальным ресурсам, но и в интернете. Это делает его отчасти полезнее поиска в терминале
- Кликаем по найденному файлу, чтобы он тут же открылся.
Файл открывается в подходящей программе, а не в файловом менеджере
Если манипуляции мышкой вам чужды (вы же все-таки пользователь Linux), то можно обойтись и без нее. Для включения меню Activities нажмите на клавиатуре клавишу Win (Cmd на клавиатурах Apple). Чтобы начать поиск, просто начните вводить свой запрос (ничего выделять не нужно). А для выбора файла из выдачи просто нажмите на клавишу «Ввод» (Enter).
Ищем через файловый менеджер
- Открываем любой файловый менеджер (в моем примере будет стандартный Nautilus). См. также: лучшие файловые менеджеры для Linux.
У вас может быть любой другой файловым менеджер
- Ищем там кнопку включения поиска. Обычно она похожа на лупу. Это общепризнанный символ.
Иногда поле поиска отображается в виде строки
- Вводим свой поисковой запрос и выбираем нужный объект.
Имеем схожий результат
Итак, мы рассмотрели с вами все способы поиска файлов в Linux-системах. А если вы только собираетесь познакомиться с этой ОС — рекомендуем изучить популярные дистрибутивы Linux и выбрать самый подходящий.
Автор материала: Владимир Ковылов
Подписывайтесь на наш канал и ставьте лайки! А еще можете посетить наш официальный сайт.
Источник: http://zen.yandex.ru/media/tehnichka/iscem-faily-v-linux-5fc8be4052642f33b97c6fda
Другие полезные применения команды find в Linux
Слышен громкий треск рвущихся шаблонов пользователей Mint. И пока шаблоны рвутся, пользователям мужских дистрибутивов предлагается делиться своими рецептами применения find.
Источник: http://liberatum.ru/e/file-find-linux
Поиск файлов через терминал. Команда grep
Команда grep может использоваться не только в роли фильтра для других команд, но и производить поиск файлов. Для этого необходимо задать параметр -r и указать папку, в которой следует искать текст. Предположим, что мы хотим найти в каталоге /var/log все файлы, которые содержат строку error:
sudo grep -r «error» /var/log
С помощью команды grep довольно легко проводить поиск нужной конфигурации или же проверять, не содержат ли файлы с кодом чего-нибудь подозрительного.
Источник: http://ravesli.com/poisk-fajlov-v-linux/
Найти файлы по размеру
Чтобы найти файлы по размеру файла, передайте
-size
параметр вместе с критериями размера. Вы можете использовать следующие суффиксы, чтобы указать размер файла:
- b: 512-байтовые блоки (по умолчанию)
- c: байты
- w: двухбайтовые слова
- k: Килобайты
- M: Мегабайт
- G: Гигабайты
Следующая команда найдет все файлы с точно 1024 байтами внутри /tmp каталога:
find /tmp -type f -size 1024c
Команда find также позволяет вам искать файлы, которые больше или меньше указанного размера.
В следующем примере мы ищем все файлы меньше, чем 1MBвнутри текущего рабочего каталога. Обратите внимание на -символ минус перед значением размера:
find . -type f -size -1M
Если вы хотите искать файлы с размером больше чем 1MB, вам нужно использовать + символ плюс :
find . -type f -size +1M
Вы даже можете искать файлы в диапазоне размеров. Следующая команда найдет все файлы между 1 и 2MB:
find . -type f -size +1M -size 21M
Источник: http://baks.dev/article/terminal/how-to-find-files-in-linux-using-the-command-line
Поиск файлов по дате изменения
find также может искать файлы на основе их последнего изменения, доступа или изменения времени.
То же, что и при поиске по размеру, используйте символы «плюс» и «минус» для «больше чем» или «меньше чем».
Допустим, несколько дней назад вы изменили один из файлов конфигурации dovecot, но забыли, какой именно. Вы можете легко отфильтровать все файлы в /etc/dovecot/conf.d каталоге, который заканчивается .conf и был изменен за последние пять дней с помощью:
find /etc/dovecot/conf.d -name «*.conf» -mtime 5
Вот еще один пример фильтрации файлов по дате изменения с использованием этой -daystart опции. Команда ниже выведет список всех файлов в /homeкаталоге, которые были изменены 30 или несколько дней назад:
find /home -mtime +30 -daystart
Источник: http://baks.dev/article/terminal/how-to-find-files-in-linux-using-the-command-line
RSS
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник: http://obu4alka.ru/search-text-files-linux.html
Поиск файлов через терминал. Команда whereis
Команда whereis выполняет только одну задачу — отображает местоположение исполняемого файла, переданного ей в качестве параметра. Например, для того, чтобы узнать, где находится исполняемый файл команды uname, достаточно выполнить:
whereis uname
Источник: http://ravesli.com/poisk-fajlov-v-linux/
Фильтрация по глубине
Для этого раздела нам потребуется создать во временной директории трехуровневую структуру директорий с десятью директориями на первом уровне. В каждой директории (включая временную) будет десять поддиректорий и десять файлов.
Создадим структуру выполнением следующих команд:
mkdir -p ~/test/level1dir{1..10}/level2dir{1..10}/level3dir{1..10}touch ~/test/{file{1..10},level1dir{1..10}/{file{1..10},level2dir{1..10}/{file{1..10},level3dir{1..10}/file{1..10}}}}cd ~/test
Для проверки структуры можно воспользоваться командами ls и cd. Разобравшись в организации нужно вернуться в тестовую директорию:
cd ~/test
Теперь попробуем найти в этой структуре конкретные файлы. Начнем с примера обычного поиска по имени:
find -name file1

Результатов очень много. Если мы переведем вывод на счётчик, мы увидим, что всего таких файлов 1111:
find -name file1 | wc -l1111
В большинстве случаев эти результаты избыточны. Давайте попробуем сузить поиск.
Можно задать максимальную глубину поиска в директории поиска верхнего уровня:
find -maxdepth число -name имя
Чтобы найти «file1» только в директориях «level1» и выше, нужно указать максимальную глубину, равную 2 (1 для директории верхнего уровня и 1 для директорий уровня 1):
find -maxdepth 2 -name file1

С этим списком справиться гораздо проще.
Если вы знаете, что все файлы находятся далее определенной точки в текущей директории, можно также указать минимальную глубину:
find -mindepth число -name имя
Так мы можем найти все файлы на концах ветвей дерева директорий:
find -mindepth 4 -name file1

. . .
Из-за нашей древовидной структуры снова будет выведено большое количество результатов (1000).
Можно комбинировать максимальную и минимальную глубину, чтобы сосредоточиться на узком диапазоне:
Источник: http://itproffi.ru/poisk-fajlov-v-linux-utilita-find/
Найти файлы по владельцу
Чтобы найти файлы, принадлежащие конкретному пользователю или группе, используйте параметры -user и -group.
Например, для поиска всех файлов и каталогов, принадлежащих пользователю baks, вы должны выполнить:
find / -user baks
Вот пример из реальной жизни. Допустим, вы хотите найти все файлы , принадлежащие пользователю www-data и изменить владельца совпавших файлов из www-data к nginx:
find / -user www-data -type f -exec chown nginx {} ;
Источник: http://baks.dev/article/terminal/how-to-find-files-in-linux-using-the-command-line
Найти и удалить файлы
Чтобы удалить все соответствующие файлы, добавьте -delete опцию в конец выражения соответствия.
Убедитесь, что вы используете эту опцию, только если вы уверены, что результат соответствует файлам, которые вы хотите удалить. Рекомендуется распечатать соответствующие файлы перед использованием -delete параметра.
Например, чтобы удалить все файлы, заканчивающиеся на .temp из, /var/log/ вы должны использовать:
find /var/log/ -name `*.temp` -delete
Используйте -deleteопцию с особой осторожностью. Командная строка find оценивается как выражение, и если вы -delete сначала добавите параметр, команда удалит все, что находится ниже указанных вами начальных точек.
Когда дело доходит до каталогов, find можно удалить только пустые каталоги так же, как rmdir.
Источник: http://baks.dev/article/terminal/how-to-find-files-in-linux-using-the-command-line