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

Содержание:

Просматриваем содержимое файла по шаблону в Linux

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

grep опции шаблон файл

Команду можно применять и совместно с cat:

cat файл | grep опции шаблон

Давайте выведем из лога лишь предупреждения:

cat /var/log/Xorg.0.log | grep WW

Вывод:

(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
 (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
 (WW) Disabling Keyboard0
 (WW) Disabling Mouse0
 (WW) evdev: A4TECH USB Device: ignoring absolute axes.

Есть и ряд полезных опций: -A, -B, -C. Допустим, нам надо выполнить вывод двух строк после вхождения enp2s0:

 $ ifconfig | grep -A2 enp2s0

Вывод из файла:

enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::beae:c5ff:febe:8bb7 prefixlen 64 scopeid 0x20<link>

А теперь, то же самое, но до вхождения loop:

 ifconfig | grep -B2 loop

Вывод:

inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)

Можно по две строки как до, так и после loop:

ifconfig | grep -C2 loop

Вывод из файла:

inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 9810 bytes 579497 (565.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 

Linux поиск по содержимому файлов командой find

Своего рода швейцарским ножом в розыске файлов является команда find. Отметим, что она имеет множество опций, которые смогут кардинально изменять механизм поиска. Мы изложим лишь основные принципы, а с остальными способностями ознакомьтесь в справке по команде. Базовый принцип использования find состоит в указании папки поиска и опций. Например, выражение «find ~/ -name *.cpp» осуществит поиск файлов, имеющих продолжение «cpp» по всем каталогам, находящимся в личной директории пользователя.

Значение, указанное после опции -name, задает шаблон соотношения имени файла. Вы можете использовать опцию -type для указания типа файла, где в свойстве значений нужно использовать специальные буквы: d — директория, f — файл, l — символическая ссылка и т. д. Функции -user, -group и -size также довольно полезны. Их значениями являются имя пользователя, имя категории и размер файла в байтах.

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

А возможно и еще проще

2.3 Общие параметры и примеры команды grep

Параметры Описание
В то же время показать совпадающую линию вверх и вниз? Строка, например: grep -2, имя файла шаблона отображает две строки выше и ниже совпадающей строки одновременно.
Напечатайте номер блока перед соответствующей строкой.
Печатайте только количество совпадающих строк, а не совпадающее содержимое.
Извлеките шаблон из файла. Пустой файл содержит 0 шаблонов, поэтому ничего не соответствует.
При поиске нескольких файлов соответствующий префикс имени файла не отображается.
Не обращайте внимания на различия в регистре.
Отмените отображение и вернитесь только к состоянию выхода. 0 означает, что соответствующая строка была найдена.
Распечатать список файлов, соответствующих шаблону.
Распечатайте список файлов, которые не соответствуют шаблону.
Напечатайте номер строки перед соответствующей строкой.
Никакое сообщение об ошибке о файле, который не существует или не может быть прочитан, не отображается.
Обратный поиск и отображать только несопоставленные строки.
Если оно заключено в кавычки \ <и>, выражение ищется как слово.
Отображение информации о версии программного обеспечения.

пример:

Поиск с помощью консольных утилит

Есть люди, которые ненавидят работу в терминале, а есть те, кому наоборот такой способ общения с системой нравится больше. Но мы рассмотрим как терминальные утилиты, так и графические.

find

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

Например:

$ man find

locate

Утилиту locate можно отнести ко второму типу средств для поиска в Linux. Команда locate опирается на базу данных, которая создана утилитой updatedb. Эта база данных также обновляется системным планировщиком cron. Этот способ поможет найти файлы, которые реально существуют в файловой системе. Базу данных вы можете обновлять и сами.

Команда locate позволяет выполнить поиск файла по имени Linux. Вы можете использовать различные регулярные выражения в запросе: Правка». Вы можете фильтровать файлы по имени, содержанию и размещению. Если вы включили индексацию файлов Baloo, то Dolphin сможет отфильтровать элементы по типу и дате изменения.

Krusader

Данная программа распространена среди пользователей KDE Plasma в качестве альтернативы Dolphin, так как Krusader имеет множество дополнительных опций. Данное приложение работает как GUI для вышеперечисленных утилит find и locate. Krusader позволяет настроить множество фильтров, такие как тип файла, включенные и исключенные каталоги, размер, владелец и права доступа.

Эта программа также может искать по ключевым словам, и вы даже можете использовать регулярные выражения для сужения поисковой выдачи. Если вы никогда не пробовали пользоваться программой Krusader, то обязательно стоит это попробовать.

Thunar

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

Просматриваем Linux-файл в сжатом виде

Порой, в системе встречаются текстовые файлы в сжатом виде и формате gz. Это могут быть конфигурационные файлы ядра либо логи программ. Открыть такие файлы можно тоже через терминал, не прибегая к распаковке. Для этого существует множество аналогов вышеназванных утилит с той лишь разницей, что они имеют приставку z: zgerp, zegrep, zcat, zless.

Давайте откроем сжатый файл в Linux для просмотра:

zcat test.gz

Или выполним просмотр сжатого файла с прокруткой:

zless test

Вот, пожалуй, и всё. Теперь вы точно в курсе, как правильно открывать и просматривать текстовые файлы в терминале Linux.

Как просмотреть файл в Linux с прокруткой

Бывает, что текстовый файл большой, поэтому его содержимое не помещается в один экран. Использовать в таком случае cat неудобно, зато есть less. Синтаксис у неё такой же:

less <путь_к_файлу/имя_файла>

Команда less обеспечит постраничный просмотр, что очень удобно. При этом:
1) less позволяет просматривать текст по определённому числу строк, для чего достаточно указать — (тире или минус) и количество строк:

less -5 myfile.txt

2) можно начать просмотр с конкретной строки в файле, указав + (плюс) и номер строки, с которой хотим начать чтение:

less +5 myfile.txt

Открыв текст, мы можем управлять его просмотром:

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

Команда find – это один из мощнейших инструментов linux-администратора.
Ниже приведена шпаргалка по этой замечательной команде.

Найти файл по имени без учета регистра

начиная с текущего каталога рекурсивно:

find -iname "MyCProgram.c"

в каталоге рекурсивно:

find /var -iname syslog*

ограничить поиск только текущей файловой системой (-xdev должен быть после пути поиска но до аргументов поиска)

find /var -xdev -iname syslog*

Найти файл по Inode и переименовать

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

~# find /var -iname syslog -exec ls -i1 {} \;
     3932232 /var/log/syslog
     3932189 /var/log/installer/syslog
~# find /var -inum 3932232 -exec mv {} new-test-file-name \;

файлы и каталоги

find /var/log -empty

только файлы

find /var/log -empty -type f

только каталоги

find /var/log -empty -type d

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

найти файлы больше чем

find /var/log -size +100M

найти файлы меньше чем

find /var/log -size -100M

найти файлы точно в размер

find /var/log -size 100M

Ключи -ctime -mtime -atime -amin – cmin – mmin

Access time – время доступаModification time – время изменения содержимого в файлеChange time – время обновления файла. (например если мы поменяли атрибуты доступа, то изменится ctime в то же время mtime не изменится)

Опции и означают дни и минуты

Выполнение операций над найденными файлами

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

find <CONDITION_to_Find_files> -exec <OPERATION> \;

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

пример:
найти все файлы с именем и вывести их

find /var -name syslog -type f -exec ls -i1 {} \;

*скобки можно применять в рамках только одной команды! *

например вот эта команда сработает без проблем:

find -name "*.txt" cp {} {}.bkup \;

а вот эта команда сработает не верно! Здесь отработают только скобки в команде mv:

find -name "*.txt" -exec mv {} `basename {} .htm`.html \;

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

echo "mv "$1" "`basename "$1" .htm`.html"" > mv.sh
find -name "*.html" -exec ./mv.sh '{}' \;

Форматированный вывод

find /var -type file -name syslog -prinf '<FORMAT>'

usable ключи форматирования:

\a     Alarm bell.
\n     Newline.
\t     Horizontal tab.

%c     File's last status change time  in  the  format  returned  by  the  C
                     `ctime' function.
%f     File's name with any leading directories removed (only the last  ele‐
                     ment).
%g     File's group name, or numeric group ID if the group has no name.
%h     Leading directories of file's name (all but the  last  element).   If
                     the  file name contains no slashes (since it is in the current direc‐
                     tory) the %h specifier expands to ".".
%i     File's inode number (in decimal).
%k     The amount of disk space used for this file in 1K blocks. Since  disk
                     space  is allocated in multiples of the filesystem block size this is
                     usually greater than %s1024, but it can also be smaller if the  file
                     is a sparse file.
%b     The amount of disk space used for this file in 512-byte blocks. Since
                     disk space is allocated in multiples of  the  filesystem  block  size
                     this  is  usually  greater than %s512, but it can also be smaller if
                     the file is a sparse file.
%m     File's permission bits (in octal).   This  option  uses  the  `tradi‐
                     tional' numbers which most Unix implementations use, but if your par‐
                     ticular implementation uses an unusual ordering of octal  permissions
                     bits,  you  will  see  a  difference  between the actual value of the
                     file's mode and the output of %m.   Normally you will want to have  a
                     leading  zero  on  this  number, and to do this, you should use the #
                     flag (as in, for example, `%#m').
%M     File's permissions (in symbolic form, as for ls).  This directive  is
                     supported in findutils 4.2.5 and later.
%p     File's name.
%P     File's name with the name of the command line argument under which it
                     was found removed.
%s     File's size in bytes
%t     File's last modification time in the format returned by the C `ctime'
                     function.
%u     File's user name, or numeric user ID if the user has no name.
%U     File's numeric user ID
%Y     File's type (like %y), plus follow symlinks L=loop, N=nonexistent

Можно запускать два поиска в одной команде

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

Например следующая команда рекурсивно проходит по файловой системе один раз, при этом сохраняет список файлов с флагом в файл , а список с большими файлами в

find /  \( -perm -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) , \
 \( -size +100M -fprintf /root/big.txt '%-10s %p\n' \)

Enjoy!

Действия

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

Действие Описание
-delete Удаляет файлы, соответствующие критериям поиска
-ls Показывает подробный вывод ls с размерами файлов и количеством inode
-print Показывает полный путь к соответствующим файлам. Это действие по умолчанию, если не указано другое действие.
-exec Выполняет следующую команду в каждой строке результатов поиска.

Итак, если вы хотите найти все пустые файлы и удалить их, вы можете сделать это следующим образом:

Внимание: перед использованием действия удаления всегда можно безопасно запустить команду один раз с действием   и подтвердить результаты. Действие является особенным

Это позволяет вам выполнить команду по вашему выбору в результатах поиска:

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

где:

  • command — это команда, которую вы хотите выполнить для результатов поиска, например rm, mv или cp.
  • {} представляет результаты поиска.
  • Команда заканчивается точкой с запятой после обратной косой черты.

Итак, команду поиска и удаления всех пустых файлов можно записать так:

Вот еще один пример использования действия . Следующая команда копирует все .png изображения в каталог backup/images:

Поиск файла в Linux по фамилии командой whereis

Whereis возвращает место расположения кода (опция -b), ман-страниц (функция -m), и исходные файлы (опция -s) для указанной команды. Если опции не указываются, выводится вся вразумительная информация. Эта команда быстрее чем “find” но менее полная. Команда whereis имеет последующий формат:

покажет положение бинарного файла, исходников и man-страницы бригады find:

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

Видео: How to Share File in Linux

Kupfer

Kupfer — это простой лаунчер, доступный в репозиториях таких дистрибутивов, как Debian, Ubuntu, Fedora и Arch Linux. Данная утилита поставляется с множеством плагинов, так что из Kupfer можно сделать прекрасный поисковый инструмент, который можно назвать GUI для утилиты locate. Этот инструмент может также создать свой каталог индексируемых директорий. После ввода ключевого слова Kupfer предложит некоторое количество действий, которое можно выполнить. Количество этих действий напрямую зависит от плагинов, которые вы активируете или деактивируете в настройках лаунчера.

KRunner

KRunner — это стандартный лаунчер графического окружения KDE Plasma. Чтобы открыть этот лаунчер, нажмите Alt + F2. Если вы хотите настроить KRunner, то зайдите в раздел Plasma Search в системных настройках. В KRunner также поддерживаются и плагины, которые помогут вам найти не только какие-либо файлы, но и вы сможете взаимодействовать с другими Linux приложениями и элементами окружения рабочего стола KDE Plasma. С помощью плагинов вы сможете искать статьи на Википедии, видео на YouTube, недавние документы и многое другое.

Albert

Разработчики данного лаунчера были вдохновлены лаунчером Alfred из macOS. Albert является достаточно простым приложением, но плагины превращают его в мощную утилиту. Плагин «Files» индексирует директории, а сам лаунчер Albert производит поиск по индексу. Также имеется возможность поиска файлов при неполном его названии в запросе, еще вы можете выбрать типы файлов, которые будут проиндексированы. Чтобы выполнить поиск папки в Linux или какого-нибудь файла, запустите Albert сочетанием клавиш и начните вводить свой поисковый запрос.

Mutate

Это еще один лаунчер, разработчики которого были вдохновлены Alfred из macOS. Правда Mutate не имеет такого количества опций, как Albert, но он все равно имеет возможность поиска по типу и обычного файлового поиска. Также вы можете искать файлы по имени или же по расширению. Диалог настроек Mutate несколько необычен, так как он показывает, какие скрипты используются. Кроме ключевых слов и сочетаний клавиш вы настроить ничего не сможете.

Команды для управления правами на файлы и директории

Все, что нужно для разрешения проблем, связанных с правами в Linux.

  • sudo — выдает права суперпользователя. Используется перед любой другой командой в терминале, если нужно выполнить ее от имени администратора. Многие программы и операции запускаются исключительно при наличии этих прав, так что sudo используется часто. Например, чтобы обновить список пакетов в Ubuntu, введем: sudo apt-get update. При этом система запросит пароль администратора.
  • sudo su — переводит терминал в режим суперпользователя. В нем каждая введенная команда будет восприниматься системой так, будто перед ней ввели sudo. Помогает запускать несколько скриптов и утилит, требующих права администратора, без необходимости постоянно корректировать их или вводить пароль от учетной записи.
  • sudo gksudo — используется для запуска графических утилит от имени администратора. В Windows для этого есть специальная кнопка в контекстном меню, а в Linux — префикс. Синтаксис такой:
​sudo gksudo название приложения, нуждающееся в запуске от имени администратора
  • sudo !! — запускает предыдущую команду от имени администратора. Используется, если до этого была неудачная попытка запустить программу. Помогает не тратить время на повторный ввод большого количества символов.
  • chmod — корректирует права доступа к выбранному файлу. Применяется исключительно с набором аргументов, обозначающих список прав. Допустим, я хочу выдать права на чтение и запись файла Timeweb.html на рабочем столе. Для этого введу в терминал: chmod 777 ~/Desktop/timeweb.html. Теперь его можно открывать и редактировать. Аналогичным образом пользователи поступают с системными файлами, когда приходит время что-то в них менять. По умолчанию большая их часть защищена от записи.
  • chown — назначает владельца для выбранной директории, документа, картинки или любого другого элемента в файловой системе. Синтаксис следующий:
chown имя учетной записи, которому надо передать права путь до файла, права на который нужно передать

Основная информация о Find

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

Утилита find предустановлена по умолчанию во всех Linux дистрибутивах, поэтому вам не нужно будет устанавливать никаких дополнительных пакетов. Это очень важная находка для тех, кто хочет использовать командную строку наиболее эффективно.

Команда find имеет такой синтаксис:

find   критерий шаблон

Папка — каталог в котором будем искать

Параметры — дополнительные параметры, например, глубина поиска, и т д

Критерий — по какому критерию будем искать: имя, дата создания, права, владелец и т д.

Шаблон — непосредственно значение по которому будем отбирать файлы.

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

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

1. Поиск всех файлов

Показать все файлы в текущей директории:

Все три команды покажут одинаковый результат. Точка здесь означает текущую папку. В место неё можно указать любую другую.

2. Поиск файлов в определенной папке

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

Искать файлы по имени в текущей папке:

Поиск по имени в текущей папке:

Не учитывать регистр при поиске по имени:

5. Несколько критериев

Поиск командой find в Linux по нескольким критериям, с оператором исключения:

Найдет все файлы, начинающиеся на test, но без расширения php. А теперь рассмотрим оператор ИЛИ:

Эта команда найдёт как php, так и html файлы.

6. Тип файла

По умолчанию find ищет как каталоги, так и файлы. Если вам необходимо найти только каталоги используйте критерий type с параметром d. Например:

Для поиска только файлов необходимо использовать параметр f:

Найти скрытые файлы только в текущей папке. Имена скрытых файлов в Linux начинаются с точки:

8. Поиск по разрешениям

Найти файлы с определенной маской прав, например, 0664:

Права также можно задавать буквами для u (user) g (group) и o (other). Например, для того чтобы найти все файлы с установленным флагом Suid в каталоге /usr выполните:

Поиск файлов доступных владельцу только для чтения только в каталоге /etc:

Найти только исполняемые файлы:

Найти все файлы, принадлежащие пользователю:

Поиск файлов в Linux принадлежащих группе:

10. Поиск по дате модификации

Поиск файлов по дате в Linux осуществляется с помощью параметра mtime. Найти все файлы модифицированные 50 дней назад:

Поиск файлов в Linux открытых N дней назад:

Найти все файлы, модифицированные между 50 и 100 дней назад:

Найти файлы измененные в течении часа:

Найти все файлы размером 50 мегабайт:

От пятидесяти до ста мегабайт:

Найти самые маленькие файлы:

Самые большие:

13. Действия с найденными файлами

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

Удалить все текстовые файлы в tmp

Удалить все файлы больше 100 мегабайт:

Use Grep to Find Files Based on Content

The find command in Linux is great but it can only filter the directory tree according to filename and meta data. To search files based on what they contain you’ll need a tool like grep. Take a look:

This goes through every object in the current directory tree (.) that’s a file (-type f) and then runs grep ” forinstance ” for every file that matches, then prints them on the screen (-print). The curly braces ({}) are a placeholder for those results matched by the Linux find command. The {} go inside single quotes (‘) so that grep isn’t given a misshapen file name. The -exec command is ended with a semicolon (;), which also needs an escape (\;) so that it doesn’t end up being interpreted by the shell.

Before -exec was implemented, xargs would have been used to create the same kind of output:

find &plus; sed

К результатам команды find можно сразу же применить

sed

find . -type f -name *.php -exec sed -i s@python/old_file_name\.php@python/new_directory/new_name\.php@ {} \;

. означает, что ищем в текущей директории (и вложенных)

Эта команда заменяет везде

на

Следующий пример

find . -type f -name *.php -exec sed -n /\/i\/aws\/oauth.php/ p {} \;

Эта команда ищет по всем .php файлам строку /i/aws/oauth.php

Если нужно не найти или заменить строку а показать название файла, в котором есть определённые символы
— удобно воспользоваться связкой find &plus; grep

Добавить в функцию my_function дополнительный аргумент — сразу в всех .php файлах.

find -type f -name «*.php« -exec sed smy_function(\$old_arg1,\ \$old_arg2)my_function(\$old_arg1,\ \$old_arg2,\ \$new_arg1 {} \;

find -type f -name «*.php« -exec sed smy\_function(\$old\_arg1,\ \$old\_arg2)my\_function(\$old\_arg1,\ \$old\_arg2,\ \$new\_arg1 {} \;

GUI

Графический интерфейс во многом облегчает жизнь новичкам, которые только установили дистрибутив Linux. Данный метод поиска очень похож на тот, что осуществляется в ОС Windows, хотя и не может дать всех тех преимуществ, что предлагает «Терминал». Но обо всем по порядку. Итак, рассмотрим, как сделать поиск файлов в Linux, используя графический интерфейс системы.

Способ 1: Поиск через меню системы

Сейчас будет рассмотрен способ поиска файлов через меню системы Linux. Проводимые действия будут выполняться в дистрибутиве Ubuntu 16.04 LTS, однако инструкция общая для всех.

Допустим, вам необходимо найти в системе файлы под именем «Найди меня», также этих файлов в системе два: один в формате «.txt», а второй — «.odt». Чтобы их отыскать, необходимо изначально нажать на иконку меню (1), и в специальном поле для ввода (2) указать поисковый запрос «Найди меня».

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

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

Расположен он в правой части меню. Фильтровать вы можете по двум критериям: «Категории» и «Источники». Разверните эти два списка, нажав по стрелочке рядом с названием, и в меню уберите выделения с ненужных пунктов. В данном случае разумнее будет оставить лишь поиск по «Файлы и папки», так как мы ищем именно файлы.

Сразу можно заметить недостаток этого способа — нельзя детально настроить фильтр, как в «Терминале». Так, если вы ищите текстовый документ с каким-то названием, в выдаче вам могут показать картинки, папки, архивы и т. п. Но если вы знаете точное наименование нужного файла, то сможете быстро отыскать его, не изучая многочисленные способы команды «find».

Способ 2: Поиск через файловый менеджер

Второй способ имеет существенное преимущество. Используя инструмент файлового менеджера, можно произвести поиск в указанном каталоге.

Выполнить данную операцию проще простого. Вам необходимо в файловом менеджере, в нашем случае Nautilus’е, войти в папку, в которой предположительно находится искомый файл, и нажать кнопку «Поиск», расположенную в верхнем правом углу окна.

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

Как и в предыдущем способе, в этом точно так же можно использовать фильтр. Для его открытия нажмите на кнопку со знаком «+», расположенную в правой части поля ввода поискового запроса. Откроется подменю, в котором вы можете из выпадающего списка выбрать искомый тип файла.

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

Теперь мы дойдем до того момента, когда команда find станет невероятно полезной. У меня были случаи, когда десктопы или серверы просто находили свои жесткие диски загадочно заполненными. Для того чтобы быстро освободить место (или помочь найти проблему), вы можете использовать команду find, чтобы найти файлы определенного размера. Скажем, например, вы хотите увеличить размер и найти файлы размером более 1000 МБ. Команда find может быть выдана с помощью опции -size, например:

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

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

  • C — байт
  • K — Килобайты
  • M — мегабайт
  • G — гигабайт
  • B — 512-байтовые блоки

Linux поиск по содержимому файлов командой grep

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

В этом варианте для поиска по содержимому файлов в каталоге можно использовать утилиту grep:

где:
-n показывает строку, где был найден фрагмент;
-r осуществляет розыск рекурсивно, в файлах в самом каталоге /path и в его подкаталогах;

Также можно приплюсовать опцию -C 3, чтобы видеть +- 3 строки вокруг (выше и ниже от найденной).

Дабы найти файл по его содержимому во всех Linux — подобных ОС, достаточно использовать утилиту find.

Искать полные слова

При поиске строки отобразит все строки, в которых строка встроена в строки большего размера.

Например, если вы ищете «gnu», все строки, в которых «gnu» встроено в слова большего размера, такие как «cygnus» или «magnum», будут найдены:

Чтобы вернуть только те строки, в которых указанная строка представляет собой целое слово (заключенное в символы, отличные от слов), используйте параметр (или ).

Символы слова включают буквенно-цифровые символы ( , и ) и символы подчеркивания ( ). Все остальные символы считаются несловесными символами.

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

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

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

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

Например, чтобы найти все файлы, которые не заканчиваются на вы должны использовать:

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

Search by the Time Parameter

14. Search for File Altered Precisely at 90 Days

If a user wants to search for files that were modified exactly before 90 days, then they need to enter the following file command:

16. Modified Files Within a Time Range

In case a user wants to look for a file that was modified in a given time range, for example, more than 30 days and less 90 days, use the following command:

 18. Files Changed Exactly Below Given Time

So let’s say if a user wants to see all files whose log is changed exactly below 30 minutes, for example, then type the following command

20. File in a Given Time Range (Hours/Minutes)

The command will allow users to search for files modified in a given range. For example, if one needs to see a file that was modified after 5 minutes and before 25 minutes then enter the following command:

Основное регулярное выражение

GNU Grep имеет три набора функций регулярных выражений : базовый, расширенный и Perl-совместимый.

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

Ниже приведен список наиболее часто используемых метасимволов:

  • Используйте символ (каретка) для сопоставления выражения в начале строки. В следующем примере строка будет соответствовать только в том случае, если она встречается в самом начале строки.

  • Используйте символ (доллар), чтобы найти выражение в конце строки. В следующем примере строка будет соответствовать только в том случае, если она встречается в самом конце строки.

  • Используйте расширение (точка) символ, соответствующий любому одиночному символу. Например, чтобы сопоставить все, что начинается с затем имеет два символа и заканчивается строкой , вы можете использовать следующий шаблон:

  • Используйте (скобки) для соответствия любому одиночному символу, заключенному в квадратные скобки. Например, найдите строки, содержащие или « , вы можете использовать следующий шаблон:

  • Используйте для соответствия любому одиночному символу, не заключенному в квадратные скобки. Следующий шаблон будет соответствовать любой комбинации строк, содержащих , например , и т. Д., Но не будет соответствовать строкам, содержащим ,

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

Заключение

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

Также рекомендуем прочитать:

8 команд Linux при использовании которых, нужно соблюдать осторожность
5 лучших дистрибутивов Linux для ноутбуков-8
Самые легкие дистрибутивы Linux. Топ-10 для старых компьютеров
10 наиболее часто задаваемых вопросов о Linux

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector