Как в ubuntu найти файл
Команда find в Linux | Losst
Очень важно уметь вовремя и очень быстро найти нужную информацию в системе. Конечно, все современные файловые менеджеры предлагают отличные функции поиска, но им не сравнится с поиском в терминале Linux. Он намного эффективнее и гибче обычного поиска, вы можете искать файлы не только по имени, но и по дате добавления, содержимому, а также использовать для поиска регулярные выражения. Кроме того, с найденными файлами можно сразу же выполнять необходимые действия.
В этой статье мы поговорим о поиске с помощью очень мощной команды find Linux, подробно разберем ее синтаксис, опции и рассмотрим несколько примеров.
Содержание статьи:
Основная информация о Find
Find - это одна из наиболее важных и часто используемых утилит системы Linux. Это команда для поиска файлов и каталогов на основе специальных условий. Ее можно использовать в различных обстоятельствах, например, для поиска файлов по разрешениям, владельцам, группам, типу, размеру и другим подобным критериям.
Утилита find предустановлена по умолчанию во всех Linux дистрибутивах, поэтому вам не нужно будет устанавливать никаких дополнительных пакетов. Это очень важная находка для тех, кто хочет использовать командную строку наиболее эффективно.
Команда find имеет такой синтаксис:
find [папка] [параметры] критерий шаблон [действие]
Папка - каталог в котором будем искать
Параметры - дополнительные параметры, например, глубина поиска, и т д
Критерий - по какому критерию будем искать: имя, дата создания, права, владелец и т д.
Шаблон - непосредственно значение по которому будем отбирать файлы.
Основные параметры команды find
Я не буду перечислять здесь все параметры, рассмотрим только самые полезные.
- -P никогда не открывать символические ссылки
- -L - получает информацию о файлах по символическим ссылкам. Важно для дальнейшей обработки, чтобы обрабатывалась не ссылка, а сам файл.
- -maxdepth - максимальная глубина поиска по подкаталогам, для поиска только в текущем каталоге установите 1.
- -depth - искать сначала в текущем каталоге, а потом в подкаталогах
- -mount искать файлы только в этой файловой системе.
- -version - показать версию утилиты find
- -print - выводить полные имена файлов
- -type f - искать только файлы
- -type d - поиск папки в Linux
Критерии
Критериев у команды find в Linux очень много, и мы опять же рассмотрим только основные.
- -name - поиск файлов по имени
- -perm - поиск файлов в Linux по режиму доступа
- -user - поиск файлов по владельцу
- -group - поиск по группе
- -mtime - поиск по времени модификации файла
- -atime - поиск файлов по дате последнего чтения
- -nogroup - поиск файлов, не принадлежащих ни одной группе
- -nouser - поиск файлов без владельцев
- -newer - найти файлы новее чем указанный
- -size - поиск файлов в Linux по их размеру
Примеры использования
А теперь давайте рассмотрим примеры find, чтобы вы лучше поняли, как использовать эту утилиту.
1. Поиск всех файлов
Показать все файлы в текущей директории:
find
find .
find . -print
2. Поиск файлов в определенной папке
Показать все файлы в указанной директории:
find ./test
Искать файлы по имени в текущей папке:
find . -name "*.jpg"
Не учитывать регистр при поиске по имени:
find . -iname "test*"
3. Ограничение глубины поиска
Поиска файлов по имени в Linux только в этой папке:
find . -maxdepth 1 -name "*.php"
4. Инвертирование шаблона
Найти файлы, которые не соответствуют шаблону:
find . -not -name "test*"
5. Несколько критериев
Поиск командой find в Linux по нескольким критериям, с оператором исключения:
find . -name "test" -not -name "*.php"
Найдет все файлы, начинающиеся на test, но без расширения php. А теперь рассмотрим оператор ИЛИ:
find -name "*.html" -o -name "*.php"
6. Несколько каталогов
Искать в двух каталогах одновременно:
find ./test ./test2 -type f -name "*.c"
7. Поиск скрытых файлов
Найти скрытые файлы:
find ~ -type f -name ".*"
8. Поиск по разрешениям
Найти файлы с определенной маской прав, например, 0664:
find . type f -perm 0664
Найти файлы с установленным флагом suid/guid:
find / -perm 2644
Или так:
find / -maxdepth 2 -perm /u=s
Поиск файлов только для чтения:
find /etc -maxdepth 1 -perm /u=r
Найти только исполняемые файлы:
find /bin -maxdepth 2 -perm /a=x
9. Поиск файлов по группах и пользователях
Найти все файлы, принадлежащие пользователю:
find . -user sergiy
Поиск файлов в Linux принадлежащих группе:
find /var/www -group developer
10. Поиск по дате модификации
Поиск файлов по дате в Linux осуществляется с помощью параметра mtime. Найти все файлы модифицированные 50 дней назад:
find / -mtime 50
Поиск файлов в Linux открытых N дней назад:
find / -atime 50
Найти все файлы, модифицированные между 50 и 100 дней назад:
find / -mtime +50 –mtime -100
Найти файлы измененные в течении часа:
find . -cmin 60
11. Поиск файлов по размеру
Найти все файлы размером 50 мегабайт:
find / -size 50M
От пятидесяти до ста мегабайт:
find / -size +50M -size -100M
Найти самые маленькие файлы:
find . -type f -exec ls -s {} \; | sort -n -r | head -5
Самые большие:
find . -type f -exec ls -s {} \; | sort -n | head -5
12. Поиск пустых файлов и папок
find /tmp -type f -empty
$ find ~/ -type d -empty
13. Действия с найденными файлами
Для выполнения произвольных команд для найденных файлов используется опция -exec. Например, выполнить ls для получения подробной информации о каждом файле:
find . -exec ls -ld {} \;
Удалить все текстовые файлы в tmp
find /tmp -type f -name "*.txt" -exec rm -f {} \;
Удалить все файлы больше 100 мегабайт:
find /home/bob/dir -type f -name *.log -size +10M -exec rm -f {} \;
Выводы
Вот и подошла к концу эта небольшая статья, в которой была рассмотрена команда find. Как видите, это одна из наиболее важных команд терминала Linux, позволяющая очень легко получить список нужных файлов. Ее желательно знать всем системным администраторам. Если вам нужно искать именно по содержимому файлов, то лучше использовать команду grep.
Оцените статью:
Загрузка...Поиск файлов в Linux или Изучаем команду find
Автор: Нагибин Владимир. Дата статьи: 26.03.2010 г.
Несомненно, при работе с Linux, иногда возникает необходимость поиска файлов с определенными характеристиками. Этими характеристиками могут быть размер или тип файла, права доступа и другое.
Наличие в Linux команды find, во многом помогает справиться с поиском файлов по различным критериям.
Сегодня мы разберем поиск файлов в Linux и приведем основные опции команды find, которые вы сможете применить в своей работе.
Формат команды find:
find путь -опции
где путь - это каталог, в котором произвести поиск. В качестве пути можно указывать следующие значения:
. - поиск в текущем каталоге;
/ - поиск от корневого каталога;
~ - поиск в домашнем каталоге.
Что до опций, то тут гораздо бОльший список, с которым крайне необходимо внимательно ознакомиться (это в будущем очень поможет!). Итак, основные опции команды find:
-name - поиск файлов по имени, используя приведенный шаблон;
-user - поиск файлов, принадлежащих указанному пользователю;
-group - поиск файлов, принадлежащих указанной группе;
-perm - поиск файлов с указанным режимом доступа;
-type - поиск файлов определенного типа. Типов тоже достаточно:
- b - специальный блочный файл;
- d - каталог;
- c - специальный символьный файл;
- f - обычный файл;
- l - символическая ссылка;
- p - именованный канал;
- s - сокет.
-size n - поиск файлов с размером n единиц;
-mtime -n n - поиск файлов, содержание которых изменялось менее чем (-) или более чем ( ) дней назад.
Рассмотрим некоторые примеры применения команды find:
Наиболее часто применяемой опцией является опция -name, которая производит поиск файлов по имени.
Примеры с опцией -name:
$ find /mnt/usb -name "*.mp3" -print
произведет поиск всех файлов (об этом свидетельствует знак *), имеющих расширение .mp3 на USB-устройстве, смонтированном в каталог /mnt/usb.
команда
$ find ~ -name "test*" -print
выведет на экран список файлов домашнего каталога, начинающихся на test.
Если вам надо найти файлы, начинающиеся с определенных букв (к примеру, от a до j), то здесь будет удобно применить регулярные выражения, которые крайне удобны в работе:
$ find / -name "[a-j]*" -print
Вышеуказанная команда позволит отыскать все файлы в системе, начинающиеся с букв от a до j.
Поиск файлов с определенными режимами доступа
Если потребуется найти файлы, имеющие определенные режимы доступа, вам поможет опция -perm, которая легко в этом поможет.
К примеру, выполним поиск файлов с режимом доступа 775 (владелец и группа имеют полные права и ограничение на запись имеют остальные пользователи), находящихся в текущем каталоге :
$ find . -perm 775 -print
Выполняя поиск при помощи find с опцией -perm можно использовать и другой способ - можно перед значением режима поставить дефис и тогда будет произведен поиск файлов, для которых установлены все указанные биты разрешений. Причем, остальные биты в этом случае игнорируются.
К примеру, найдем файлы, к которым пользователи группы имеют полный доступ:
$ find . -perm -070 -print
Вместо знака дефиса, можно указать знак плюса. В этом случае будет произведен поиск файлов, у которых установлен хотя бы один из указанных битов разрешений. Остальные биты при этом игнорируются.
Поиск файлов определенного пользователя или группы
Поиск файлов какого-либо определенного пользователя крайне прост в своей реализации. Для этого достаточно выполнить команду:
$ find / -user admin -print
Вышеуказанная команда произведет поиск файлов в системе, принадлежащих пользователю admin.
Для того, чтобы найти файлы, принадлежащие определенной группе (к примеру managers), выполним команду:
$ find / -group managers -print
Для поиска файлов несуществующих пользователей или групп можно воспользоваться опциями -nouser и -nogroup:
$ find / -nouser -print
и
$ find / -nogroup -print
Поиск файлов определенного типа
Одной из удобных возможностей команды find, является возможность поиска файлов определенного типа. Рассмотрим варианты использования опции -type:
Поиск символических ссылок в каталоге /etc:
$ find /etc -type l -print
Вывод на экран списка каталогов, присутствующих в каталоге /mnt/raid
$ find /mnt/raid -type d -print
Поиск файлов определенного размера
Опция -size позволяет произвести поиск файлов определенного размера и имеет следующий вид при выполнении:
$ find . -size 2000k -print
Вышеуказанная команда отыщет и отобразит на экране файлы размером 2 мегабайта, находящийся в текущем каталоге. Если, к примеру, необходимо найти файлы размером менее 500 килобайт, то вид команды будет следующий:
$ find . -size -500k -print
Если нужно найти файлы размером более 600 мегабайт, то применим команду:
$ find / -size 600M -print
Поиск файлов с использованием опции -mtime
Опция -mtime позволит вам найти файлы, изменявшиеся в какой-то срок времени.
К примеру, у нас встала задача поиска файлов, находящихся в каталоге /mnt/raid/upload , и изменявшихся за последние 5 дней. В этом нам поможет команда:
$ find /mnt/raid/upload -mtime -5 -print
Если нам необходимо обратное, к примеру, отыскать файлы, которые не изменялись неделю, применим команду:
$ find /mnt/raid/upload -7 -print
Команда find является крайне удобным инструментом для поиска файлов и может использоваться также и для поиска файлов на дисках NFS (сетевых файловых системах), но в этом случае необходимо учесть, что времени на поиск чего-либо на NFS уйдет гораздо больше, чем на локальных дисках.
В этой статье мы рассмотрели лишь основные опции команды find, которые помогут вам в вашей работе. Используйте то, что удобно и не переживайте по пустякам!
Поиск файла в Linux | Losst
В операционных системах семейства Linux все объекты ОС: и данные, и управляющие элементы - являются файлами в файловой системе. Поэтому поиск файлов становится очень важной задачей. И если опытные пользователи уже знают, что и где находится, то для новичков будет очень полезным узнать, как найти местоположение того или иного файла, будь то программа, изображение или документ.
В Linux существует множество способов поиска, как в графическом интерфейсе, так и через командную строку. В сегодняшней статье мы разберём, как выполнять поиск файла в Linux с помощью всех этих средств. Но начнём с программ, у которых есть графический интерфейс.
Содержание статьи:
Поиск файла в Linux через графический интерфейс
1. Главное меню системы
Главное меню операционной системы позволяет, как правило, не только запускать программы, но и искать их, а также искать файлы. Такая возможность есть как в Gnome, так и в KDE. В главном меню Gnome вы можете ввести нужную фразу для поиска:
Но у такого поиска есть значительный недостаток. Он рассчитан больше на поиск программ, а не на поиск файлов, поэтому ищет только в домашней папке и не углубляется далеко в файловую систему.
2. Файловые менеджеры
Большинство файловых менеджеров тоже предоставляют возможности поиска файлов, в том числе Dolphin и Nautilus. Здесь вы можете выбрать папку, в которой будет выполняться поиск, а также настроить дополнительные параметры поиска. В Nautilus для запуска поиска вам достаточно нажать кнопку со значком лупы, а потом ввести данные в строку поиска. Например, найдём все фото, сделанные 18 ноября.
Открыв стрелочку дополнительных параметров можно выбрать период, за который был создан интересующий нас документ, а также тип документа.
В качестве поискового запроса можно использовать символы подстановки: ? и *. Но для более точного поиска придётся использовать сторонние программы.
3. Gnome Search
Утилита Gnome Search по умолчанию поставляется не всегда, но вы можете установить её из центра приложений или через официальные репозитории. Она предоставляет такие же возможности, как и файловый менеджер, плюс здесь можно искать по содержимому файлов, что иногда очень удобно.
4. SearchMonkey
Следующая программа в нашем списке - SearchMonkey. Она позволяет искать файлы по регулярным выражениям. Здесь тоже можно выполнять поиск файла, как по имени, так и по содержимому фала, можно выбрать диапазон дат и так далее. Но основное преимущество этой программы - возможность везде использовать регулярные выражения.
5. Recoll
Если вам приходится работать с большой библиотекой текстовой информации и искать данные по содержимому файла, то вам будет полезна утилита Recoll. Это полноценный поисковый движок для поиска документов. Установить программу можно из официальных репозиториев:
sudo apt install recoll
Сразу же после запуска она предложит вам создать индекс документов, которые есть в вашем домашнем каталоге.
И только после создания индекса вы сможете выполнять по нему поиск. Далее, вам будет достаточно ввести запрос, например Wi-Fi, и вы увидите все файлы, которые содержат это слово с примерами вхождений, отсортированные по релевантности:
Для работы с большим количеством текстовых данных это может быть очень удобно. Программа понимает множество офисных форматов, среди которых pdf, djvu, doc, docx, odf, а также умеет находить такие файлы в архивах.
Поиск файлов в Linux через терминал
Если графические утилиты рассчитаны на работу обычного пользователя и поиск в домашней папке, то консольные программы предоставляют более гибкие возможности поиск для всех файлов, включая системные и виртуальные.
1. find
Самая часто используемая команда поиска файла в Linux на данный момент - это find. Она имеет множество возможностей: вы можете искать файлы по имени, дате изменения, создания, использовать регулярные выражения и маски, выполнять определённые действия для найденных файлов, настраивать глубину поиска и многое другое. Например, найдем все файлы, которые начинаются на "Снимок" в папке ~/Изображения:
find ~/Изображения -iname "Снимок*"
Более подробную информацию об этой команде читайте в статье команда find.
2. locate
Команда locate считается устаревшей и уже была удалена из многих дистрибутивов. Она выполняет поиск не в реальном времени, как find, а по ранее созданной базе файлов, но она делает только поиск файла по имени Linux. Вы вводите слово, которое вас интересует, и утилита выдаёт все известные ей файлы, имя которых содержит такое слово. Возможно использовать регулярные выражения. Например, найдем все файлы, в имени которых содержится passwd:
locate passwd
Обратите внимание, что если файл был добавлен после создания базы, то он найден не будет.
3. grep
Утилита grep позволяет не только фильтровать вывод других команд, но и искать по содержимому файловой системы. Для этого достаточно использовать опцию -r и указать папку, в которой надо искать текст. Например, найдём все файлы в /etc/, которые содержат строчку error_reporting:
sudo grep -r "error_reporting" /etc/
С помощью grep очень удобно искать, где находится нужная конфигурация или же проверять, не содержат ли файлы с кодом чего-нибудь подозрительного. Подробнее про использование grep читайте в статье поиск текста в файлах Linux.
4. whereis
Утилита whereis достаточно простая и решает только одну задачу. Она показывает, где находится исполняемый файл, переданной ей программы. Например, если мы хотим узнать, где лежит grep, достаточно выполнить:
whereis grep
Выводы
В этой статье мы разобрали, как выполнить поиск файла в Linux различными способами, начиная от графического интерфейса и заканчивая терминалом. Как видите, здесь есть множество вариантов, которые позволят вам решить любые задачи по поиску файлов. Возможно, вам также будет интересна статья о том, как узнать pid процесса в Linux, который использует файл, порт или изменяет данные.
Как сделать поиск файлов в Linux
Во время работы в любой операционной системе иногда возникает потребность в использовании инструментов для быстрого поиска того или иного файла. Актуально это и для Linux, поэтому ниже будут рассмотрены все возможные способы поиска файлов в этой ОС. Представлены будут как инструменты файлового менеджера, так и команды, используемые в «Терминале».
Читайте также:
Переименовываем файлы в Linux
Создаем и удаляем файлы в Linux
Терминал
Если вам необходимо задать множество параметров поиска для нахождения нужного файла, то команда find незаменима. Перед рассмотрением всех ее вариаций стоит пройтись по синтаксису и опциям. Синтаксис она имеет следующий:
find путь опция
где путь — это директория, в которой будет происходить поиск. Есть три основных варианта указания пути:
- / — поиск по корневой и прилегающим к ней директориям;
- ~ — поиск по домашней директории;
- ./ — поиск в директории, в которой пользователь находится в настоящий момент.
Также вы можете указать путь непосредственно к самому каталогу, в котором предположительно расположен файл.
Опций у find очень много, и именно благодаря им можно осуществить гибкую настройку поиска, задав необходимые переменные:
- -name — проводить поиск, беря за основу имя искомого элемента;
- -user — искать файлы, которые относятся к определенному пользователю;
- -group — проводить поиск по определенной группе пользователей;
- -perm — показывать файлы с указанным режимом доступа;
- -size n — искать, беря за основу размер объекта;
- -mtime +n -n — проводить поиск файлов, которые изменялись более (+n) или менее (-n) дней назад;
- -type — искать файлы определенного типа.
Типов искомых элементов тоже много. Вот их список:
- b — блочный;
- f — обычный;
- p — именованный канал;
- d — каталог;
- l — ссылка;
- s — сокет;
- c — символьный.
После детального разбора синтаксиса и опций команды find можно переходить непосредственно к наглядным примерам. Ввиду обилия вариантов использования команды, приведены примеры будут не для всех переменных, а лишь для наиболее используемых.
Читайте также: Популярные команды в «Терминале» Linux
Способ 1: Поиск по имени (опция -name)
Чаще всего пользователи для осуществления поиска по системе используют опцию -name, так что именно с нее и начнем. Разберем несколько примеров.
Поиск по расширению
Допустим, вам нужно найти в системе файл с расширением «.xlsx», который находится в директории «Dropbox». Для этого необходимо использовать следующую команду:
find /home/user/Dropbox -name "*.xlsx" -print
Из ее синтаксиса можно сказать, что поиск проводится в директории «Dropbox» («/home/user/Dropbox»), а искомый объект должен быть с расширением «.xlsx». Звездочка свидетельствует о том, что поиск будет проведен по всем файлам этого расширения, не беря во внимание их название. «-print» указывает на то, что результаты поиска будут выведены на экран.
Пример:
Поиск по имени файла
Например, вы хотите отыскать в директории «/home» файл с названием «lumpics», но расширение его неизвестно. В таком случае нужно выполнить следующее:
find ~ -name "lumpics*" -print
Как можно заметить, здесь используется символ «~», который означает, что поиск будет проходить в домашней директории. После опции «-name» указано имя искомого файла («lumpics*»). Звездочка в конце означает что поиск будет проходить только по имени, не учитывая расширение.
Пример:
Поиск по первой букве в имени
Если вы помните только первую букву, с которой начинается название файла, то существует специальный синтаксис команды, который вам поможет его отыскать. Например, вы хотите найти файл, который начинается с буквы от «g» до «l», и вы не знаете в каком каталоге он находится. Тогда вам необходимо выполнить следующую команду:
find / -name "[g-l]*" -print
Судя по символу «/», что идет сразу после основной команды, поиск будет проведен, начиная с корневого каталога, то есть во всей системе. Далее, часть «[g-l]*» означает, что искомое слово будет начинаться с определенной буквы. В нашем случае от «g» до «l».
К слову, если вы знаете расширение файла, то после символа «*» можете его указать. Например, вам надо найти тот же файл, но вы знаете, что он имеет расширение «.odt». Тогда можно использовать такую команду:
find / -name "[g-l]*.odt" -print
Пример:
Способ 2: Поиск по режиму доступа (опция -perm)
Иногда необходимо найти объект, имя которого вы не знаете, но знаете каким режимом доступа он обладает. Тогда вам нужно применять опцию «-perm».
Пользоваться ей довольно просто, нужно всего лишь указать место поиска и режим доступа. Вот пример такой команды:
find ~ -perm 775 -print
То есть поиск проводится в домашнем разделе, а искомые объекты будут обладать доступом 775. Также вы можете перед этим числом прописать символ «-», тогда найденные объекты будут иметь биты разрешений от нуля до указанного значения.
Способ 3: Поиск по пользователю или группе (опции -user и -group)
В любой операционной системе есть пользователи и группы. Если вы хотите найти объект, принадлежащий одной из этих категорий, то для этого можете использовать опцию «-user» или «-group», соответственно.
Поиск файла по имени его пользователя
Например, вам нужно найти в директории «Dropbox» файл «Lampics», но вы не знаете как он называется, а знаете только что он принадлежит пользователю «user». Тогда вам нужно выполнить следующую команду:
find /home/user/Dropbox -user user -print
В данной команде вы указали необходимую директорию (/home/user/Dropbox), указали что нужно искать файл, принадлежащий пользователю (-user), и указали, какому именно пользователю этот файл принадлежит (user).
Пример:
Читайте также:
Как посмотреть список пользователей в Linux
Как добавить пользователя в группу в Linux
Поиск файла по названию его группы
Выполнить поиск файла, который принадлежит определенной группе, точно так же просто — вам нужно всего-навсего заменить опцию «-user» на опцию «-group» и указать название этой группы:
find / -groupe guest -print
То есть вы указали, что хотите отыскать в системе файл, относящийся к группе «guest». Поиск будет происходить по всей системе, об этом свидетельствует символ «/».
Способ 4: Поиск файла по его типу (опция -type)
Найти какой-то элемент в Linux определенного типа довольно просто, вам нужно всего лишь указать соответствующую опцию (-type) и обозначить тип. В начале статьи были перечислены все обозначения типов, которые можно применять для поиска.
Например, вы хотите отыскать все блочные файлы в домашней директории. В этом случае ваша команда будет выглядеть так:
find ~ -type b -print
Соответственно, вы указали что проводите поиск по типу файла, о чем свидетельствует опция «-type», а далее определили его тип, поставив символ блочного файла — «b».
Пример:
Точно так же вы можете вывести на экран все каталоги в нужной директории, вписав в команду символ «d»:
find /home/user -type d -print
Способ 5: Поиск файла по размеру (опция -size)
Если из всей информации о файле вы знаете только его размер, то даже этого может оказаться достаточно, чтобы найти его. Например, вы хотите в определенной директории найти файл размером 120 Мб, для этого выполните следующее:
find /home/user/Dropbox -size 120M -print
Пример:
Читайте также: Как узнать размер папки в Linux
Как можно заметить, нужный нам файл был найден. Но если вы не знаете, в какой директории он находится, можно провести поиск по всей системе, указав корневую директорию в начале команды:
find / -size 120M -print
Пример:
Если вы знаете размер файла приблизительно, то и на этот случай есть специальная команда. Вам нужно прописать в «Терминале» то же самое, только перед указанием размера файла поставить знак «-» (если нужно найти файлы меньше указанного размера) или «+» (если размер искомого файла будет больше указанного). Вот пример такой команды:
find /home/user/Dropbox +100M -print
Пример:
Способ 6: Поиск файла по дате изменения (опция -mtime)
Бывают случаи, когда удобнее всего проводить поиск файла по дате его изменения. В Linux для этого применяется опция «-mtime». Пользоваться ей довольно просто, рассмотрим все на примере.
Допустим, в папке «Изображения» нам нужно найти объекты, которые подвергались изменениям последние 15 суток. Вот что нужно прописать в «Терминале»:
find /home/user/Изображения -mtime -15 -print
Пример:
Как можно заметить, эта опция показывает не только файлы, изменявшиеся за указанный срок, но и папки. Работает она и в обратную сторону — вы можете найти объекты, которые были изменены позже указанного срока. Для этого нужно перед цифровым значением вписать знак «+»:
find /home/user/Изображения -mtime +10 -print
GUI
Графический интерфейс во многом облегчает жизнь новичкам, которые только установили дистрибутив Linux. Данный метод поиска очень похож на тот, что осуществляется в ОС Windows, хотя и не может дать всех тех преимуществ, что предлагает «Терминал». Но обо всем по порядку. Итак, рассмотрим, как сделать поиск файлов в Linux, используя графический интерфейс системы.
Способ 1: Поиск через меню системы
Сейчас будет рассмотрен способ поиска файлов через меню системы Linux. Проводимые действия будут выполняться в дистрибутиве Ubuntu 16.04 LTS, однако инструкция общая для всех.
Читайте также: Как узнать версию дистрибутива Linux
Допустим, вам необходимо найти в системе файлы под именем «Найди меня», также этих файлов в системе два: один в формате «.txt», а второй — «.odt». Чтобы их отыскать, необходимо изначально нажать на иконку меню (1), и в специальном поле для ввода (2) указать поисковый запрос «Найди меня».
Отобразится результат поиска, где будут показаны искомые файлы.
Но если в системе было бы много таких файлов и все они отличались расширениями, то поиск бы усложнился. Для того чтобы исключить в выдаче результатов ненужные файлы, например, программы, лучше всего воспользоваться фильтром.
Расположен он в правой части меню. Фильтровать вы можете по двум критериям: «Категории» и «Источники». Разверните эти два списка, нажав по стрелочке рядом с названием, и в меню уберите выделения с ненужных пунктов. В данном случае разумнее будет оставить лишь поиск по «Файлы и папки», так как мы ищем именно файлы.
Сразу можно заметить недостаток этого способа — нельзя детально настроить фильтр, как в «Терминале». Так, если вы ищите текстовый документ с каким-то названием, в выдаче вам могут показать картинки, папки, архивы и т. п. Но если вы знаете точное наименование нужного файла, то сможете быстро отыскать его, не изучая многочисленные способы команды «find».
Способ 2: Поиск через файловый менеджер
Второй способ имеет существенное преимущество. Используя инструмент файлового менеджера, можно произвести поиск в указанном каталоге.
Выполнить данную операцию проще простого. Вам необходимо в файловом менеджере, в нашем случае Nautilus’е, войти в папку, в которой предположительно находится искомый файл, и нажать кнопку «Поиск», расположенную в верхнем правом углу окна.
В появившееся поле для ввода вам нужно ввести предполагаемое название файла. Также не забывайте, что поиск может быть проведен не по целому имени файла, а лишь по его части, как показано на примере ниже.
Как и в предыдущем способе, в этом точно так же можно использовать фильтр. Для его открытия нажмите на кнопку со знаком «+», расположенную в правой части поля ввода поискового запроса. Откроется подменю, в котором вы можете из выпадающего списка выбрать искомый тип файла.
Заключение
Из всего вышесказанного, можно сделать вывод, что для проведения быстрого поиска по системе отлично подойдет второй способ, завязанный на использовании графического интерфейса. Если же необходимо задать множество параметров поиска, то незаменимой будет команда find в «Терминале».
Мы рады, что смогли помочь Вам в решении проблемы.Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
ДА НЕТПоиск внутри файлов в Linux
Иногда может понадобится найти файл, в котором содержится определённая строка или найти строку в файле, где есть нужное слово. В Linux всё это делается с помощью одной очень простой, но в то же время мощной утилиты grep. С её помощью можно искать не только строки в файлах, но и фильтровать вывод команд, и много чего ещё.
В этой инструкции мы рассмотрим, как выполняется поиск текста в файлах Linux, подробно разберём возможные опции grep, а также приведём несколько примеров работы с этой утилитой.
Содержание статьи:
Что такое grep?
Команда grep (расшифровывается как global regular expression print) - одна из самых востребованных команд в терминале Linux, которая входит в состав проекта GNU. Секрет популярности - её мощь, она даёт возможность пользователям сортировать и фильтровать текст на основе сложных правил.
Утилита grep решаем множество задач, в основном она используется для поиска строк, соответствующих строке в тексте или содержимому файлов. Также она может находить по шаблону или регулярным выражениям. Команда в считанные секунды найдёт файл в с нужной строчкой, текст в файле или отфильтрует из вывода только пару нужных строк. А теперь давайте рассмотрим, как ей пользоваться.
Синтаксис grep
Синтаксис команды выглядит следующим образом:
$ grep [опции] шаблон [имя файла...]
Или:
$ команда | grep [опции] шаблон
- Опции - это дополнительные параметры, с помощью которых указываются различные настройки поиска и вывода, например количество строк или режим инверсии.
- Шаблон - это любая строка или регулярное выражение, по которому будет вестись поиск
- Файл и команда - это то место, где будет вестись поиск. Как вы увидите дальше, grep позволяет искать в нескольких файлах и даже в каталоге, используя рекурсивный режим.
Возможность фильтровать стандартный вывод пригодится,например, когда нужно выбрать только ошибки из логов или найти PID процесса в многочисленном отчёте утилиты ps.
Опции
Давайте рассмотрим самые основные опции утилиты, которые помогут более эффективно выполнять поиск текста в файлах grep:
- -b - показывать номер блока перед строкой;
- -c - подсчитать количество вхождений шаблона;
- -h - не выводить имя файла в результатах поиска внутри файлов Linux;
- -i - не учитывать регистр;
- - l - отобразить только имена файлов, в которых найден шаблон;
- -n - показывать номер строки в файле;
- -s - не показывать сообщения об ошибках;
- -v - инвертировать поиск, выдавать все строки кроме тех, что содержат шаблон;
- -w - искать шаблон как слово, окружённое пробелами;
- -e - использовать регулярные выражения при поиске;
- -An - показать вхождение и n строк до него;
- -Bn - показать вхождение и n строк после него;
- -Cn - показать n строк до и после вхождения;
Все самые основные опции рассмотрели и даже больше, теперь перейдём к примерам работы команды grep Linux.
Примеры использования
С теорией покончено, теперь перейдём к практике. Рассмотрим несколько основных примеров поиска внутри файлов Linux с помощью grep, которые могут вам понадобиться в повседневной жизни.
Поиск текста в файлах
В первом примере мы будем искать пользователя User в файле паролей Linux. Чтобы выполнить поиск текста grep в файле /etc/passwd введите следующую команду:
grep User /etc/passwd
В результате вы получите что-то вроде этого, если, конечно, существует такой пользователь:
User:x:1000:1000:User,,,:/home/User:/bin/bash
А теперь не будем учитывать регистр во время поиска. Тогда комбинации ABC, abc и Abc с точки зрения программы будут одинаковы:
grep -i "user" /etc/passwd
Вывести несколько строк
Например, мы хотим выбрать все ошибки из лог-файла, но знаем, что в следующей строчке после ошибки может содержаться полезная информация, тогда с помощью grep отобразим несколько строк. Ошибки будем искать в Xorg.log по шаблону "EE":
grep -A4 "EE" /var/log/xorg.0.log
Выведет строку с вхождением и 4 строчки после неё:
grep -B4 "EE" /var/log/xorg.0.log
Выведет целевую строку и 4 строчки до неё:
grep -C2 "EE" /var/log/xorg.0.log
Выведет по две строки с верху и снизу от вхождения.
Регулярные выражения в grep
Регулярные выражения grep - очень мощный инструмент в разы расширяющий возможности поиска текста в файлах. Для активации этого режима используйте опцию -e. Рассмотрим несколько примеров:
Поиск вхождения в начале строки с помощью спецсимвола "^", например, выведем все сообщения за ноябрь:
grep "^Nov 10" messages.1
Nov 10 01:12:55 gs123 ntpd[2241]: time reset +0.177479 s
Nov 10 01:17:17 gs123 ntpd[2241]: synchronized to LOCAL(0), stratum 10
Поиск в конце строки - спецсимвол "$":
grep "terminating.$" messages
Jul 12 17:01:09 cloneme kernel: Kernel log daemon terminating.
Oct 28 06:29:54 cloneme kernel: Kernel log daemon terminating.
Найдём все строки, которые содержат цифры:
grep "[0-9]" /var/log/Xorg.0.log
Вообще, регулярные выражения grep - это очень обширная тема, в этой статье я лишь показал несколько примеров. Как вы увидели, поиск текста в файлах grep становиться ещё эффективнее. Но на полное объяснение этой темы нужна целая статья, поэтому пока пропустим её и пойдем дальше.
Рекурсивное использование grep
Если вам нужно провести поиск текста в нескольких файлах, размещённых в одном каталоге или подкаталогах, например в файлах конфигурации Apache - /etc/apache2/, используйте рекурсивный поиск. Для включения рекурсивного поиска в grep есть опция -r. Следующая команда займётся поиском текста в файлах Linux во всех подкаталогах /etc/apache2 на предмет вхождения строки mydomain.com:
grep -r "mydomain.com" /etc/apache2/
В выводе вы получите:
grep -r "zendsite" /etc/apache2/
/etc/apache2/vhosts.d/zendsite_vhost.conf: ServerName zendsite.localhost
/etc/apache2/vhosts.d/zendsite_vhost.conf: DocumentRoot /var/www/localhost/htdocs/zendsite
/etc/apache2/vhosts.d/zendsite_vhost.conf: <Directory /var/www/localhost/htdocs/zendsite>
Здесь перед найденной строкой указано имя файла, в котором она была найдена. Вывод имени файла легко отключить с помощью опции -h:
grep -h -r "zendsite" /etc/apache2/
ServerName zendsite.localhost
DocumentRoot /var/www/localhost/htdocs/zendsite
<Directory /var/www/localhost/htdocs/zendsite>
Поиск слов в grep
Когда вы ищете строку abc, grep будет выводить также kbabc, abc123, aafrabc32 и тому подобные комбинации. Вы можете заставить утилиту искать по содержимому файлов в Linux только те строки, которые выключают искомые слова с помощью опции -w:
grep -w "abc" имя_файла
Поиск двух слов
Можно искать по содержимому файла не одно слово, а два сразу:
egrep -w 'word1|word2' /path/to/file
Количество вхождений строки
Утилита grep может сообщить, сколько раз определённая строка была найдена в каждом файле. Для этого используется опция -c (счетчик):
grep -c 'word' /path/to/file
C помощью опции -n можно выводить номер строки, в которой найдено вхождение, например:
grep -n 'root' /etc/passwd
Получим:
1:root:x:0:0:root:/root:/bin/bash
Инвертированный поиск в grep
Команда grep Linux может быть использована для поиска строк в файле, которые не содержат указанное слово. Например, вывести только те строки, которые не содержат слово пар:
grep -v пар /path/to/file
Вывод имени файла
Вы можете указать grep выводить только имя файла, в котором было найдено заданное слово с помощью опции -l. Например, следующая команда выведет все имена файлов, при поиске по содержимому которых было обнаружено вхождение primary:
grep -l 'primary' *.c
Цветной вывод в grep
Также вы можете заставить программу выделять другим цветом вхождения в выводе:
grep --color root /etc/passwd
Получится:
Выводы
Вот и всё. Мы рассмотрели использование команды grep для поиска и фильтрации вывода команд в операционной системе Linux. При правильном применении эта утилита станет мощным инструментом в ваших руках. Если у вас остались вопросы, пишите в комментариях!
Как искать файлы в Linux с помощью команды find
Если вы часто работаете в командной строке на компьютере или на сервере, где вообще нет графической оболочки, перед вами рано или поздно встанет задача поиска файлов. К счастью, в Linux уже встроена команда, которая позволяет найти файл в системе.
Сегодня мы поговорим об использовании команды find — поверьте, стоит научиться работать с этим мощным и удобным инструментом.
Как использовать команду find
Если говорить упрощённо, базовый синтаксис команды find выглядит следующим образом:
find /путь параметры имя_файла
Давайте разбираться с возможностями команды
Поиск файла по имени
Первый параметр — это путь. Если вы понятия не имеете, где может скрываться файл, ставьте вместо пути /
— этого достаточно. Однако, поиск по всему диску может быть достаточно длительным, и если вы знаете, где может находиться файл, укажите папку, с которой надо начинать искать (например ~
для поиска в домашней папке пользователя).
Теперь перейдём к параметрам поиска. Есть два варианта поиска файла по имени:
name
— поиск с учетом регистра имени файлаiname
— поиск без учета регистра имени файла
Нужно помнить, что в Linux регистр имени файла имеет значение, и если нужно найти, например, файл Ubuntu.txt, то следующая команда не даст никаких результатов:
find / -name ubuntu.txt
Но можно воспользоваться командой iname
и выполнить поиск без учета регистра:
find / -iname ubuntu.txt
Поиск по типу
Команда find позволяет искать не только файлы. Вот какие типы дескрипторов поддерживает поиск:
f
— обычный файлd
— директорияl
— символическая ссылкаc
— символьное устройствоb
— блочное устройство
Например, для поиска всех директорий внутри домашней директории текущего пользователя, названиt которых начинается с «config», выполните следующую команду:
find ~ -type d -name config*
Вывод результатов поиска в файл
Удобная функция вывода результата выполнения команды в файл будет крайне полезна, если результатов поиска много или есть необходимость работать с ними позже. Например, для того, чтобы сохранить список всех найденных конфигурационных файлов в файл conf_search, выполните следующую команду:
find /etc -type f -name “*.conf” > conf_search
Поиск файлов по размеру
Это очень полезный параметр, когда место на диске заканчивается и нужно понять, куда оно делось. Например, чтобы найти файлы размером больше 1000 Мб, выполните следующую команду:
find / -size +1000M
Можно использовать следующие сокращения размеров:
c
— байтыk
— килобайтыM
— мегабайтыG
— гигабайтыb
— блоки по 512 байт
Это всего несколько способов применения мощной команды . Больше способов можно найти в руководстве, выполнив команду
man find
находок - Community Help Wiki
Команда GNU find ищет файлы в каталоге и его подкаталогах по нескольким критериям, таким как имя, размер и время последнего чтения / записи. По умолчанию find печатает имена найденных файлов, но также может выполнять команды с этими файлами.
Команда GNU find является частью GNU findutils и устанавливается в каждой системе Ubuntu. findutils фактически состоит из 4 утилит:
-
find - поиск файлов в иерархии каталогов, независимо от того, является ли это база данных или нет
-
найти - список файлов в базах данных, соответствующих шаблону, т.е.е. найти в списке updatedb
-
updatedb - обновить базу данных имен файлов, то есть собрать только db , например sqlite
-
xargs - создать и выполнить командные строки из стандартного ввода - обычно вы это делаете напрямую без xargs
Эта вики-страница будет иметь дело только с find, а также кратко упомянуть xargs. Надеюсь, что в ближайшем будущем locate и updatedb будут освещены на отдельной странице.«find», как и «locate», также может находить файлы базы данных, но «locate» более специализирован для этой задачи. Вы должны запустить updateb перед использованием locate, который полагается на данные, созданные "updateDB".
find ~ -name readme.txt
найдет этот файл под домашним каталогом. find работает невероятно быстро при втором запуске! Вы можете выполнить поиск по всему / корневому-каталогу всего за прибл. 3 секунды (при втором запуске, когда кэш активен) на жестком диске ext4-fs емкостью 500 ГБ.
Синтаксис для использования find:
find [-H] [-L] [-P] [путь ...] [выражение]
3 варианта [-H] [-L] [-P] не часто встречаются, но, по крайней мере, следует отметить, если только вы понимаете, что опция -P будет иметь значение по умолчанию , если не указан другой параметр:
- -H: не переходить по символическим ссылкам, кроме как при обработке аргументов командной строки .
- -L: переходите по символическим ссылкам.
- -P: Никогда не переходить по символическим ссылкам: параметр по умолчанию.
Параметр [путь ...] относится к конкретному местоположению, в котором вы хотите выполнить поиск, будь то ваш каталог $ HOME, конкретный каталог, такой как / usr, ваш текущий рабочий каталог, который можно просто выразить как '. ' или весь ваш компьютер, что может быть выражено как '/'.
Параметр [выражение] относится к одному или ряду параметров, которые влияют на общий параметр команды поиска. Эти параметры могут включать поиск по имени, размеру, времени доступа или могут также включать действия, предпринимаемые с этими файлами.
Поиск файлов по имени
Чаще всего find используется для поиска определенного файла по его имени. Следующая команда выполняет поиск в домашнем каталоге и во всех его подкаталогах в поисках файла mysong.ogg:
find $ HOME -name 'mysong.ogg'
Важно выработать привычку цитировать шаблоны при поиске, как показано выше, иначе ваши результаты поиска могут быть немного непредсказуемыми. Однако такой поиск может быть гораздо более сложным.Например, если вы хотите найти всех файлов ogg в своем домашнем каталоге, некоторые из которых, по вашему мнению, могут называться «OGG», а не «ogg», вы должны выполнить:
find $ HOME -iname '* .ogg '
Здесь опция' -iname 'выполняет поиск без учета регистра, в то время как подстановочный знак' * 'соответствует любому символу, количеству символов или нулю. Чтобы выполнить тот же поиск на всем диске , вы должны запустить:
sudo find / -iname '*.ogg '
Это может быть медленным поиском в зависимости от количества каталогов, подкаталогов и файлов в вашей системе. Это подчеркивает важное различие в способе работы find, заключающееся в том, что он проверяет систему непосредственно каждый раз, в отличие от таких программ, как locate или slocate, которые фактически проверяют регулярно обновляемую базу данных имен файлов и местоположений.
Поиск файлов по размеру
Другой возможный поиск - поиск файлов размером .Чтобы продемонстрировать это, мы можем снова выполнить поиск в домашнем каталоге файлов Ogg Vorbis, но на этот раз искать файлы размером 100 мегабайт или больше:
find $ HOME -iname '* .ogg' -size + 100M
Есть несколько вариантов с -size, здесь я использовал «M» для «мегабайт», но можно использовать «k» для «килобайт» или «G» для «гигабайт». Затем этот поиск можно изменить для поиска файлов только тех, которые меньше , чем 100 мегабайт:
find $ HOME -iname '* .ogg' -type f -size -100M
Вы начинаете видеть силу о находке и мысли, задействованные в построении целенаправленного поиска? Если вам интересно, эти комбинированные поиски более подробно обсуждаются в разделе «Расширенное использование» ниже.
Поиск файлов по времени доступа
Также возможно найти файлы по времени их доступа или времени, когда они в последний раз использовались или просматривались системой. Например, чтобы показать все файлы, к которым не было доступа в каталоге $ HOME в течение 30 или более дней:
find $ HOME -atime +30
Этот тип поиска обычно более полезен в сочетании с другими поисками find. Например, можно найти все файлы ogg в каталоге $ HOME, время доступа которых превышает 30 дней:
find $ HOME -iname '*.ogg '-atime +30
Синтаксис работает слева направо, и по умолчанию find объединяет 2 выражения с подразумеваемым «и». Более подробно это рассматривается в разделе «Объединение поисковых запросов» ниже.
В приведенных выше разделах подробно описано наиболее частое использование find, и этого будет достаточно для большинства поисков. Однако есть гораздо больше возможностей использования find для довольно продвинутого поиска, и в этом разделе обсуждаются некоторые из этих возможностей.
Объединение результатов поиска
При использовании find можно комбинировать поиски с использованием того, что на страницах руководства find известно как операторы .Это
, как в find ~ -name 'xx *' -and -not -name 'xxx'
, если вы не предпочитаете загадочный синтаксис ниже (-o вместо -or)
Классический пример: использование логического И синтаксиса:
find $ HOME -iname '* .ogg' -size + 20M
Этот поисковый поиск сначала выполняет поиск без учета регистра для всех файлов ogg в вашем каталоге $ HOME и для всех истинных результатов Затем он ищет те, размер которых составляет 20 мегабайт и более.Он содержит и подразумевает оператор, который можно записать вместе с -a . Этот поиск можно немного изменить, используя восклицательный знак для обозначения отрицания результата:
find $ HOME -iname '* .ogg'! -size + 20M
Выполняет тот же поиск, что и раньше, но ищет файлы ogg размером , а не размером более 20 мегабайт. Также можно использовать логическое ИЛИ при поиске поиска:
find $ HOME -iname '* .ogg' -o -iname '* .mp3'
Это будет выполнять поиск без учета регистра в каталогах $ HOME и найти все файлы в формате ogg ИЛИ mp3.Здесь есть большие возможности для создания очень сложных и точно отточенных поисковых запросов, и я бы посоветовал внимательно прочитать справочные страницы find для поиска темы OPERATORS.
Работа с файлами
Один продвинутый, но очень полезный аспект использования поиска - это возможность выполнять действие, указанное пользователем, над результатом поиска. Например, следующий поиск ищет все файлы ogg vorbis в каталоге $ HOME, а затем использует -exec для передачи результата в программу du, чтобы указать размер каждого файла:
find $ HOME -name '*.ogg '-type f -exec du -h' {} '\;
Этот синтаксис часто используется для удаления файлов с помощью -exec rm -rf , но его следует использовать с большой осторожностью, если вообще, поскольку восстановление любых удаленных файлов может быть довольно трудным.
Использование xargs
xargs <<< / ls
так же, как: ls /
xargs передает здесь строку / в качестве параметра («аргумент») команде ls
При использовании действительно сложного поиска часто бывает полезно идея использовать другой член пакета findutils: xargs.Без его использования можно было увидеть сообщение Список аргументов слишком длинный , сигнализирующий о превышении предела ядра на объединенную длину командной строки и ее переменных среды. xargs работает, передавая результаты поиска последующей команде в пакетах, рассчитанных с учетом возможностей системы (на основе ARG_MAX). Пример:
find / tmp -iname '* .mp3' -print0 | xargs -0 rm
В этом примере выполняется поиск всех файлов mp3 в папке / tmp, а затем их удаление.Обратите внимание на использование -print0 и xargs -0 , что является преднамеренной стратегией, позволяющей избежать проблем с пробелами и / или новой строкой в именах файлов. Современные ядра не имеют ограничения ARG_MAX, но для обеспечения переносимости результатов поиска рекомендуется использовать xargs в сложных поисках с последующими командами.
КатегорияCommandLine
.Поиск файлов в командной строке (Как сделать)
К сожалению, в Linux, особенно в Ubuntu, поиск файлов с графическим интерфейсом пользователя по умолчанию - не самый полезный способ поиска файлов.
Приложив немного терпения, вы можете быстро и легко находить файлы с помощью командной строки, и ваши параметры для этого действительно эффективны, если вы хотите немного узнать об этом.
Найдите
Простая и быстрая команда называется «найти». Чтобы использовать эту команду в терминале, просто введите:
$ locate -i searchstring
Будет выполнен поиск всех файлов и каталогов, в названии которых есть «строка поиска», а -i
означает, что поиск не чувствителен к регистру (т.е.е. он найдет строку поиска, строку поиска, sEaRcHsTrInG и так далее).
Результаты получаются мгновенно, потому что система создала базу данных (также известную как индекс), чтобы сообщить вам, где находятся файлы. Единственная проблема заключается в том, что вновь созданные или перемещенные файлы могут быть найдены неправильно до следующего обновления базы данных, и у вас не так много вариантов для поиска.
Принудительное обновление базы данных / индекса выполняется с помощью команды sudo updatedb
, и это не занимает много времени.
Пример:
$ найти -i omgubuntu.desktop
Найдите
Вам доступна гораздо более мощная команда под названием «найти».
Вы можете указать «найти», где искать, какие критерии использовать при поиске и какие действия предпринять после того, как вы найдете то, что ищете.
Синтаксис «найти»:
$ find <где начать поиск> <критерии поиска> <действия, которые необходимо предпринять>
Если вы не добавите никаких параметров, find по умолчанию будет искать в текущем рабочем каталоге (или «.
“), не использует никаких критериев поиска (по умолчанию показывает все файлы) и -print (который, несмотря на свое имя, отображает или« печатает »результаты на экране) в качестве единственного действия, которое необходимо предпринять.
Два примера:
$ sudo find / -type f -mmin -10
В этом примере будут найдены (начиная с корневого каталога или / и рекурсивного поиска в подкаталогах) все обычные файлы ( -тип f
означает обычные файлы, без этого он найдет обычные файлы + специальные файлы + каталоги), которые были изменены меньше чем десять минут назад (-mmin -10), а затем отобразить результаты для вас.
Это может быть полезно, если вы знаете, что недавно редактировали файл, но не знаете, куда вы его поместили, или если вам нужно найти файл журнала для программы, в которой произошел сбой.
Вы можете добавить сюда sudo , потому что find не выполняет поиск файлов / каталогов, для которых у текущего пользователя нет разрешений, и будет возвращать сообщения об ошибках, если вы не являетесь sudoer - , просто будьте осторожны!
$ find ~ -iname "* new *" -exec mv -v {} / media / current-projects / \;
Это найдет все в вашем домашнем каталоге (~) с именем, нечувствительным к регистру (-iname), содержащим new («* new *») и выполнит (-exec) перемещение (mv) результатов ({}) в / media / current-projects / (\; требуется для -exec, чтобы показать конец выполняемой команды).Таким образом, все ваши файлы будут перемещены в одно место. mv -v отображает результаты команды перемещения с (-v) сообщениями erbose.
Еще одно предупреждение с -exec, хотя оно и мощное, при неосторожном использовании вы можете перезаписать весь домашний каталог или весь диск - так что будьте осторожны!
Catfish - это опция графического интерфейса
Для тех из вас, кто просто не может обойтись без графического интерфейса, вы можете найти программу Catfish в репозиториях - это позволяет запускать как locate
, так и find
из графического интерфейса, но это очень ограничено. в опциях.
Считайте Catfish эквивалентом Windows Search. Если вам нужны все возможности find, вам нужно будет запустить его из командной строки, следуя приведенным выше советам.
Установите Catfish из программного обеспечения Ubuntu
Какой метод поиска файлов вы предпочитаете? Ответьте ниже, и я пришлю его позже $ grep Nixie *
. ;-)
Главная »Как сделать» Поиск файлов в командной строке (Как сделать)
.Как найти файлы и каталоги в Linux
Обновлено: 30.11.2020 компанией Computer Hope
В операционных системах Linux команду find можно использовать для поиска файлов и каталогов на вашем компьютере. Чтобы продолжить, выберите ссылку из следующего списка или просмотрите каждый раздел по порядку.
Базовая функциональность find
Запуск find без каких-либо параметров создает список всех файлов и каталогов внутри и ниже рабочего каталога. Например, если ваш рабочий каталог - / home / hope / Documents , запуск find выводит следующее:
- Каждый файл в / home / hope / Documents .
- Все подкаталоги в / home / hope / Documents .
- Каждый файл в каждом из этих подкаталогов.
Давайте посмотрим на это в действии. Сначала давайте проверим наш рабочий каталог с помощью команды pwd:
pwd
/ на главную / надежда / Документы
Теперь давайте запустим find без опций:
найти
. ./картинки ./images/hp ./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes ./images/memes/winteriscoming.jpg ./images/memes/goodguygary.JPG ./images/memes/picard.jpg ./gimp-2.8.16.tar.bz2 ./hp-fanfic ./hp-fanfic/malfoys-revenge.doc ./hp-fanfic/weekend-at-hagreds.doc ./hp-fanfic/dumbledores-lament.doc ./archlinux-2016.02.01-dual.iso
В этом примере мы видим в общей сложности десять файлов и четыре подкаталога в нашей папке Documents и ниже.
Обратите внимание, что выходные данные начинаются с одной точки, которая представляет рабочий каталог.Запуск find без параметров - это то же самое, что указание того, что поиск должен начинаться в рабочем каталоге, например:
находка.
Пример выше - «правильный» способ использования find . Если вы попытаетесь использовать его в другой Unix-подобной операционной системе, такой как FreeBSD, необходимо указать каталог. Хорошая практика - использовать эту форму команды.
Указание, где искать
Чтобы вывести список только файлов и подкаталогов, содержащихся в каталоге / home / hope / Documents / images , укажите первый аргумент команды как:
найти / главная / надежда / документы / изображения
/ главная / надежда / Документы / изображения / главная / надежда / Документы / изображения / hp / главная / надежда / документы / изображения / hp / snape.jpg /home/hope/Documents/images/hp/harry.jpg / главная / надежда / Документы / изображения / мемы /home/hope/Documents/images/memes/winteriscoming.jpg /home/hope/Documents/images/memes/goodguygary.JPG /home/hope/Documents/images/memes/picard.jpg
Обратите внимание, что в результатах также отображается полный путь.
Если наш рабочий каталог - / home / hope / Documents , мы можем использовать следующую команду, которая находит те же файлы:
наход. / Изображения
Но на этот раз вывод отражает начальную точку поиска и выглядит так:
./картинки ./images/hp ./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes ./images/memes/winteriscoming.jpg ./images/memes/goodguygary.JPG ./images/memes/picard.jpg
По умолчанию поиск просматривает все подкаталоги исходного местоположения. Если вы хотите ограничить количество уровней подкаталога для поиска, вы можете использовать параметр -maxdepth с номером.
Например, указав -maxdepth 1 выполняет поиск только в каталоге, в котором начинается поиск.Если какие-либо подкаталоги найдены, они отображаются в списке, но не просматриваются.
находка. -максглубина 1
. ./картинки ./bigfiles.txt ./gimp-2.8.16.tar.bz2 ./hp-fanfic ./archlinux-2016.02.01-dual.iso
Указание -maxdepth 2 ищет каталог и один подкаталог в глубине:
находка. -максглубина 2
. ./картинки ./images/hp ./images/memes ./gimp-2.8.16.tar.bz2 ./hp-fanfic ./hp-fanfic/malfoys-revenge.док ./hp-fanfic/weekend-at-hagreds.doc ./hp-fanfic/dumbledores-lament.doc ./archlinux-2016.02.01-dual.iso
Указание -maxdepth 3 поиск на один уровень глубже этого:
находка. -максглубина 3
. ./картинки ./images/hp ./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes ./images/memes/winteriscoming.jpg ./images/memes/goodguygary.JPG ./images/memes/picard.jpg ./gimp-2.8.16.tar.bz2 ./ hp-fanfic ./hp-fanfic/malfoys-revenge.doc ./hp-fanfic/weekend-at-hagreds.doc ./hp-fanfic/dumbledores-lament.doc ./archlinux-2016.02.01-dual.iso
Нахождение по названию
Чтобы ограничить результаты поиска соответствием только файлам и каталогам с определенным именем, используйте параметр -name и поместите имя в кавычки:
находка. -name "picard.jpg"
./images/memes/picard.jpg
Вы также можете использовать подстановочные знаки как часть имени файла.Например, чтобы найти все файлы, имя которых заканчивается на .jpg , вы можете использовать звездочку для обозначения остальной части имени файла. Когда вы запускаете команду, оболочка заменяет имя файла всем, что соответствует шаблону:
находка. -name "* .jpg"
./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes/winteriscoming.jpg ./images/memes/picard.jpg
Обратите внимание, что наша команда не перечислила файл с расширением (в данном случае JPG ) заглавными буквами.Это потому, что в отличие от других операционных систем, таких как Microsoft Windows, имена файлов Linux чувствительны к регистру.
Чтобы вместо этого выполнить поиск без учета регистра, используйте параметр -iname :
находка. -iname "* .jpg"
./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes/winteriscoming.jpg ./images/memes/goodguygary.JPG ./images/memes/picard.jpg
Поиск только файлов или только каталогов
Чтобы перечислить только файлы и исключить имена каталогов из результатов, укажите -type f :
находка.-типа f
./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes/winteriscoming.jpg ./images/memes/goodguygary.JPG ./images/memes/picard.jpg ./gimp-2.8.16.tar.bz2 ./hp-fanfic/malfoys-revenge.doc ./hp-fanfic/weekend-at-hagreds.doc ./hp-fanfic/dumbledores-lament.doc ./archlinux-2016.02.01-dual.iso
Чтобы перечислить только каталоги и опустить имена файлов, укажите -type d :
находка. -типа d
. ./картинки ./images/hp ./images/memes ./hp-fanfic
Поиск файлов по размеру
Чтобы отображать только файлы определенного размера, вы можете использовать параметр -размер . Чтобы указать размер, используйте знак плюс или минус (для «больше чем» или «меньше чем»), число и количественный суффикс, например k , M или G .
Например, чтобы найти файлы размером «более 50 килобайт», используйте -size + 50k :
находка.-размер + 50к
./images/memes/winteriscoming.jpg ./gimp-2.8.16.tar.bz2 ./archlinux-2016.02.01-dual.iso
Для файлов размером более 10 мегабайт используйте -size + 10M :
находка. -размер + 10М
./gimp-2.8.16.tar.bz2 ./archlinux-2016.02.01-dual.iso
Для «более 1 гигабайта» используйте -size + 1G :
находка. -размер + 1G
./archlinux-2016.02.01-dual.iso
Для файлов определенного диапазона размеров используйте два параметра -size .Например, чтобы найти файлы «больше 10 мегабайт, но меньше 1 гигабайта», укажите -size + 10M -size -1G :
находка. -размер + 10M -размер -1G
./gimp-2.8.16.tar.bz2
Поиск файлов на основе модификации, доступа или изменения статуса
Параметр -mtime ограничивает поиск количеством дней с момента изменения содержимого файла. Чтобы указать дни в прошлом, используйте отрицательное число. Например, чтобы найти только те файлы, которые были изменены за последние два дня (48 часов назад), используйте -mtime -2 :
находка.-mtime -2
Параметр -mmin делает то же самое, но в минутах, а не в днях. Например, эта команда показывает только файлы, измененные за последние полчаса:
находка. -ммин -30
Аналогичная опция - -ctime , которая проверяет время последнего изменения статуса файла в днях. Изменение статуса - это изменение метаданных файла. Например, изменение прав доступа к файлу - это изменение статуса.
Параметр -cmin выполняет поиск изменения состояния, измеряемого в минутах.
Вы также можете найти, когда к файлу в последний раз обращались, другими словами, когда его содержимое просматривалось в последний раз. Параметр -atime используется для поиска файлов на основе времени их последнего доступа, измеряемого в днях.
Параметр -amin выполняет то же ограничение поиска, но измеряется в минутах.
Перенаправление вывода в текстовый файл
Если вы выполняете очень большой поиск, вы можете сохранить результаты поиска в файл, чтобы вы могли просмотреть результаты позже.Вы можете сделать это, перенаправив вывод find в файл:
находка. -iname "* .jpg"> images.txt
Затем вы можете открыть результаты в текстовом редакторе или распечатать их с помощью команды cat .
кот images.txt
./images/hp/snape.jpg ./images/hp/harry.jpg ./images/memes/winteriscoming.jpg ./images/memes/goodguygary.JPG ./images/memes/picard.jpg
В качестве альтернативы вы можете передать свой вывод команде tee , которая выводит вывод на экран и записывает его в файл:
находка.размер + 500M | тройник bigfiles.txt
./archlinux-2016.02.01-dual.iso
кот bigfiles.txt
./archlinux-2016.02.01-dual.iso
Подавление сообщений об ошибках
При выполнении поиска может появиться сообщение об ошибке «В доступе отказано». Например, если вы выполняете поиск в корневом каталоге как обычный пользователь:
найти /
найти: `/ var / lib / sudo / ts ': в доступе отказано find: `/ var / lib / sudo / lectured ': в доступе отказано find: `/ var / lib / polkit-1 ': в доступе отказано find: `/ var / lib / container ': в доступе отказано найти: `/ var / lib / gdm3 /.dbus ': в доступе отказано find: `/var/lib/gdm3/.config/ibus ': в доступе отказано ...
Вы получите это сообщение об ошибке, если find попытается получить доступ к файлу, на чтение которого у вашей учетной записи нет разрешения. Вы можете выполнить поиск как суперпользователь ( root ), который имеет полный доступ ко всем файлам в системе. Но не рекомендуется делать что-либо как root , если нет других вариантов.
Если все, что вам нужно сделать, это скрыть сообщение «Permission denied»
.linux - Ubuntu 13.04: поиск файлов, заканчивающихся на
Переполнение стека- Около
- Продукты
- Для команд
- Переполнение стека Общественные вопросы и ответы
- Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
- Вакансии Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
- Реклама Обратитесь к разработчикам и технологам со всего мира
- О компании
Загрузка…
Командная строка Linux для начинающих
В этом разделе мы собираемся создать несколько реальных файлов для работы. Чтобы избежать случайного захвата любых ваших реальных файлов, мы собираемся начать с создания нового каталога, вдали от вашей домашней папки, который будет служить более безопасной средой для экспериментов:
mkdir / tmp / tutorial cd / tmp / учебник
Обратите внимание на использование абсолютного пути, чтобы убедиться, что мы создали каталог tutorial внутри / tmp .Без косой черты в начале команда mkdir
попытается найти каталог tmp внутри текущего рабочего каталога, а затем попытается создать внутри него каталог tutorial . Если он не сможет найти каталог tmp , команда завершится ошибкой.
Если вы не догадались, mkdir
- это сокращение от « m a k e dir ectory». Теперь, когда мы в безопасности в нашей тестовой области (дважды проверьте с помощью pwd
, если вы не уверены), давайте создадим несколько подкаталогов:
mkdir dir1 dir2 dir3
Эта команда немного отличается.До сих пор мы видели только команды, которые работают сами по себе ( cd
, pwd
) или имеют один элемент после ( cd /
, cd ~ / Desktop
). Но на этот раз мы добавили три вещи после команды mkdir
. Эти вещи называются параметрами или аргументами , и разные команды могут принимать разное количество аргументов. Команда mkdir
ожидает по крайней мере один аргумент, тогда как команда cd
может работать с нулем или единицей, но не более.Посмотрите, что произойдет, если вы попытаетесь передать команде неправильное количество параметров:
mkdir cd / etc ~ / Рабочий стол
Вернуться в наши новые каталоги. Приведенная выше команда создаст три новых подкаталога внутри нашей папки. Давайте посмотрим на них с помощью команды ls
( l i s t):
ls
Если вы выполнили несколько последних команд, ваш терминал должен выглядеть примерно так:
Обратите внимание, что mkdir
создал все папки в одном каталоге.Это не создавало dir3 внутри dir2 внутри dir1 или любой другой вложенной структуры. Но иногда бывает удобно сделать именно это, и у mkdir
есть способ:
mkdir -p dir4 / dir5 / dir6 ls
На этот раз вы увидите, что в список добавлено только dir4 , потому что dir5 находится внутри него, а dir6 находится внутри него.Позже мы установим полезный инструмент для визуализации структуры, но у вас уже есть достаточно знаний для подтверждения:
cd dir4 ls cd dir5 ls CD ../..
Используемый нами «-p» называется опцией или переключателем (в данном случае это означает «также создать каталоги p arent»). Параметры используются для изменения способа работы команды, позволяя одной команде вести себя по-разному.К сожалению, из-за причуд истории и человеческой природы параметры могут принимать разные формы в разных командах. Вы часто будете видеть их как отдельные символы, которым предшествует дефис (как в этом случае), или как более длинные слова, которым предшествуют два дефиса. Односимвольная форма позволяет комбинировать несколько параметров, хотя не все команды допускают это. И что еще больше запутывает ситуацию, некоторые команды вообще не идентифицируют свои параметры четко, независимо от того, является ли что-то одним из вариантов, определяется исключительно порядком аргументов! Вам не нужно беспокоиться обо всех возможностях, просто знайте, что варианты существуют, и они могут принимать разные формы.Например, все следующие слова означают одно и то же:
# Не вводите их, они здесь только для демонстрационных целей. mkdir --parents --verbose dir4 / dir5 mkdir -p --verbose dir4 / dir5 mkdir -p -v dir4 / dir5 mkdir -pv dir4 / dir5
Теперь мы знаем, как создать несколько каталогов, просто передав их в качестве отдельных аргументов команде mkdir
. Но предположим, что мы хотим создать каталог с пробелом в имени? Давайте попробуем:
mkdir другая папка ls
Вам, вероятно, даже не нужно было вводить ее, чтобы угадать, что произойдет: две новые папки, одна с именем , другая с именем и другая с именем , папка .Если вы хотите работать с пробелами в именах каталогов или файлов, вам нужно экранировать их . Не волнуйтесь, из тюрьмы никто не вырвется; экранирование - это вычислительный термин, который относится к использованию специальных кодов, чтобы сообщить компьютеру, что нужно обрабатывать определенные символы иначе, чем обычно. Введите следующие команды, чтобы опробовать различные способы создания папок с пробелами в имени:
mkdir "папка 1" mkdir 'папка 2' папка mkdir \ 3 mkdir "папка 4" "папка 5" mkdir -p "папка 6" / "папка 7" ls
Хотя командную строку можно использовать для работы с файлами и папками с пробелами в именах, необходимость экранировать их кавычками или обратной косой чертой немного усложняет задачу.Часто можно сказать человеку, который много пользуется командной строкой, просто по именам файлов: они будут использовать буквы и цифры и использовать подчеркивания («_») или дефисы («-») вместо пробелов.
Создание файлов с использованием перенаправления
Наша демонстрационная папка начинает наполняться каталогами, но в ней немного не хватает файлов. Давайте исправим это, перенаправив вывод команды таким образом, чтобы вместо вывода на экран он попал в новый файл. Во-первых, напомните себе, что сейчас показывает команда ls
:
ls
Предположим, мы хотим записать вывод этой команды в виде текстового файла, который мы можем просмотреть или изменить дальше.Все, что нам нужно сделать, это добавить символ «больше» (">") в конец нашей командной строки, а затем имя файла для записи:
ls> output.txt
На этот раз ничего не выводится на экран, потому что вместо этого вывод перенаправляется в наш файл. Если вы просто запустите ls
самостоятельно, вы увидите, что файл output.txt был создан. Мы можем использовать команду cat
, чтобы посмотреть ее содержимое:
cat output.текст
Хорошо, значит, это не , а именно , что отображалось на экране ранее, но оно содержит все те же данные и в более удобном формате для дальнейшей обработки. Давайте посмотрим на другую команду, echo
:
echo "Это тест"
Да, echo
просто снова выводит свои аргументы (отсюда и название). Но совместите это с переадресацией, и вы сможете легко создавать небольшие тестовые файлы:
echo "This is a test"> test_1.текст echo "Это второй тест"> test_2.txt echo "Это третий тест"> test_3.txt ls
Вы должны cat
каждого из этих файлов, чтобы отметить их содержимое. Но cat
- это больше, чем просто программа для просмотра файлов - его название происходит от «con cat enate», что означает «связывать вместе». Если вы передадите более одного файла в cat
, он выведет каждое из них, одно за другим, в виде одного блока текста:
cat test_1.txt test_2.txt test_3.текст
Если вы хотите передать несколько имен файлов одной команде, есть несколько полезных сочетаний клавиш, которые могут сэкономить вам много времени при вводе, если файлы имеют похожие имена. Знак вопроса («?») Может использоваться для обозначения «любого отдельного символа» в имени файла. Звездочка («*») может использоваться для обозначения «нуля или более символов». Иногда их называют «подстановочными знаками». Несколько примеров могут помочь, все следующие команды делают одно и то же:
cat test_1.txt test_2.txt test_3.txt cat test _ ?. txt кошка test_ *
Требуется больше экранирования
Как вы могли догадаться, эта возможность также означает, что вам нужно экранировать имена файлов с помощью? или символы * в них тоже. Обычно лучше избегать любых знаков препинания в именах файлов, если вы хотите управлять ими из командной строки.
Если вы посмотрите на результат ls
, то заметите, что единственные файлы или папки, начинающиеся с «t», - это три тестовых файла, которые мы только что создали, так что вы можете даже упростить эту последнюю команду до cat t *
, что означает «объединить все файлы, имена которых начинаются с t , за которыми следует ноль или более других символов».Давайте воспользуемся этой возможностью, чтобы объединить все наши файлы в один новый файл, а затем просмотрим его:
cat t *> Commander.txt кот комбинированный.txt
Как вы думаете, что произойдет, если мы выполним эти две команды во второй раз? Будет ли компьютер жаловаться, потому что файл уже существует? Добавит ли он текст в файл, чтобы он содержал две копии? Или полностью заменит? Попробуйте посмотреть, что произойдет, но чтобы не вводить команды снова, вы можете использовать клавиши Стрелка вверх, и Стрелка вниз, для перемещения вперед и назад по истории команд, которые вы использовали.Нажмите Стрелка вверх пару раз, чтобы перейти к первому cat
, и нажмите Введите , чтобы запустить его, затем повторите то же самое еще раз, чтобы перейти ко второму.
Как видите, файл выглядит так же. Это не потому, что его оставили нетронутым, а потому, что оболочка очищает все содержимое файла перед записью в него вывода вашей команды cat
. По этой причине при использовании перенаправления следует проявлять особую осторожность, чтобы случайно не перезаписать нужный файл.Если вы все же хотите добавить, а не заменить содержимое файлов, удвойте знак «больше»:
cat t * >> Commander.txt echo "Я добавил строку!" >> Combined.txt кот комбинированный.txt
Повторите первую cat
еще несколько раз, используя для удобства Стрелку вверх и, возможно, добавьте еще несколько произвольных команд echo
, пока ваш текстовый документ не станет настолько большим, что он не поместится полностью. терминал сразу, когда вы используете cat
для его отображения.Чтобы увидеть весь файл, нам теперь нужно использовать другую программу, которая называется пейджером (потому что она отображает ваш файл по одной «странице»). Старый стандартный пейджер назывался или
, потому что он помещает строку текста внизу каждой страницы с надписью «-More-», чтобы указать, что вы еще не прочитали все. В наши дни есть гораздо лучший пейджер, который вы должны использовать вместо этого: поскольку он заменяет на
, программисты решили назвать его минус
.
за вычетом комбинированного.txt
При просмотре файла через минус
вы можете использовать клавиши Стрелка вверх , Стрелка вниз , Page Up , Page Down , Home и End для перемещения по файлу. Дайте им возможность увидеть разницу между ними. По завершении просмотра файла нажмите q – q uit минус
и вернитесь в командную строку.
Примечание о регистре
Системы Unix чувствительны к регистру, то есть они учитывают «A.txt »и« a.txt »как два разных файла. Если бы вы запустили следующие строки, вы бы получили три файла:
echo "Нижний регистр"> a.txt echo "Верхний регистр"> A.TXT echo "Смешанный регистр"> A.txt
Как правило, следует избегать создания файлов и папок, имена которых зависят только от регистра. Это не только поможет избежать путаницы, но и предотвратит проблемы при работе с разными операционными системами. Windows, например, нечувствительна к регистру , поэтому она будет рассматривать все три указанных выше имени файла как один файл, что может вызвать потерю данных или другие проблемы.
У вас может возникнуть соблазн просто нажать клавишу Caps Lock и использовать верхний регистр для всех имен файлов. Но подавляющее большинство команд оболочки пишутся в нижнем регистре, поэтому вам часто придется включать и выключать его по мере ввода. Большинство опытных пользователей командной строки, как правило, придерживаются в основном строчных имен для своих файлов и каталогов, чтобы им редко приходилось беспокоиться о конфликтах имен файлов или о том, какой регистр использовать для каждой буквы в имени.
Хорошая практика именования
Когда вы учитываете как чувствительность к регистру, так и экранирование, хорошее практическое правило - использовать в именах файлов только строчные буквы, только буквы, цифры, подчеркивания и дефисы.Для файлов обычно также есть точка и несколько символов в конце, чтобы указать тип файла (называемый «расширением файла»). Это руководство может показаться ограничительным, но если вы в конечном итоге будете использовать командную строку с какой-либо частотой, вы будете рады, что придерживались этого шаблона.
Как найти строку в файлах в Linux Ubuntu
Как найти строку в файлах в Linux Ubuntu
В основном используются команды grep и find .
Найти строку в файле
grep строка имя файла
grep имя file.txt
Найти строку в файле без учета регистра
grep строка имя файла
grep -i имя файла.txt
Найти строку в текущем каталоге
строка grep.
имя grep.
Рекурсивно найти строку
grep -r строка.
grep -r имя.
Найти файлы, не содержащие строки
grep -L строка.
grep -L "foo" *
Рекурсивный поиск строки только в некоторых определенных файлах
grep строка -r. --include = *. myextension
grep строка -r. --include = *. {myextension, myextension2}
grep "name = Oscar" -r. --include = *. js
* если вы укажете --include, строка будет искать не во всех файлах, а только в включенных
Рекурсивно искать строку во всех файлах, кроме тех, которые содержат определенные расширения
grep строка -r.--exclude = *. {myextension2}
grep "Serializable" -rl. --exclude = *. {jar, class, svn-base, index}
Рекурсивно найти строку для всех файлов, включая одни расширения и исключая другие
grep строка -r. --include = *. myextension --exclude = *. myextension2
grep строка -r. --include = *. {myextension, myextension2} --exclude = *. {myextension3, myextension2}
grep "my = string" -r.--include = *. {js, html} --exclude = *. js
* Он не будет искать строку в файлах js.
Рекурсивно найти строку только в некоторых определенных файлах и показать их имя файла
grep строка -rl. --include = *. myextension
grep "name = Oscar" -rl. --include = *. js
Найдите файлы и найдите в них строку с помощью find
находка.-name '* .extension' -exec grep string +
найти. -name '* .txt' -exec grep Mytext {} +
найти. -type f \ (-name '* .htm' -or -name '* .html' \) -exec grep -i "mystring" {} +
Банкноты
- Используйте двойные кавычки «Строка», если строка содержит пробелы
- Обратите внимание на пустые пространства между расширениями между фигурными скобками, например. {txt, html}
- Не используйте фигурные скобки для одного расширения e.g {html}
.