Командата find и нейните опции в примери. Как да търсите файлове в linux с помощта на командата find Find folders linux

Започване на работа с Linux сървър, потребителите често се сблъскват с проблема с намирането на необходимите файлове.

Този урок обхваща използването на съответната команда за намиране, която ви позволява да търсите файлове с помощта на различни филтри и опции. В допълнение, това ръководство обхваща накратко командата за намиране, която може да се използва за намиране на команди.

Търсене по име на файл

Разбира се, търсенето на файл по име е най-очевидният начин да намерите правилния файл.

За да направите това, използвайте:

find -name "заявка"

Тази команда е чувствителна към главни и малки букви (т.е. третира файловете с имена file и File като два различни файла).

За да търсите файл по име, без значение за главни и малки букви, въведете:

find -iname "заявка"

За да намерите файлове, които не съответстват на определен модел, обърнете търсенето, като използвате флаговете -not или метасимвола "!". Моля, имайте предвид, че когато използвате "!" знаците трябва да бъдат екранирани, така че bash shell да не интерпретира "!" дори преди да бъде изпълнена командата find.

find -not -name "query_to_avoid"

намирам\! -име "query_to_avoid"

Търсене по тип файл

С параметъра "-type" можете да посочите типа необходим файл. Работи така:

find -type type_descriptor заявка

Ето списък с общи дескриптори, които могат да се използват за указване на тип файл:

  • f: обикновен файл;
  • д: указател;
  • л: символна връзка;
  • ° С: символни устройства;
  • b: блокови устройства.

Например, за да намерите всички символни устройства в системата, трябва да изпълните командата:

намери / -тип c
/dev/parport0
/dev/snd/seq
/dev/snd/таймер
/dev/autofs
/dev/cpu/микрокод
/dev/vcsa7
/dev/vcs7
/dev/vcsa6
/dev/vcs6
/dev/vcsa5
/dev/vcs5
/dev/vcsa4
. . .

За да намерите всички файлове, които завършват на .conf, използвайте:

find / -type f -name "*.conf"
/var/lib/ucf/cache/:etc:rsyslog.d:50-default.conf
/usr/share/base-files/nsswitch.conf
/usr/share/initramfs-tools/event-driven/upstart-jobs/mountall.conf
/usr/share/rsyslog/50-default.conf
/usr/share/adduser/adduser.conf
/usr/share/davfs2/davfs2.conf
/usr/share/debconf/debconf.conf
/usr/share/doc/apt-utils/examples/apt-ftparchive.conf
. . .

Филтриране по време и размер

Командата find ви позволява да филтрирате резултата въз основа на размера и времето на последна промяна.

размер на файла

За да филтрирате файлове по размер, използвайте опцията -size.

Трябва също да добавите суфикс в края на стойността, за да посочите размера:

  • ° С:байт
  • к:килобайт
  • М:мегабайт
  • G:гигабайт
  • б:блокове от 512 байта

За да намерите файлове с размер точно 50 байта, въведете:

намери / -размер 50c

За да намерите файлове, по-малки от 50 байта, използвайте знака "-" пред стойността:

намери / -размер -50c

Съответно, за да намерите файлове, по-големи от 700 мегабайта, използвайте символа + преди стойността; командата изглежда така:

намери / -размер +700M

Търсене по време

Linux съхранява данни за времето за достъп, времето за модификация и времето за промяна.

  • време на достъп: последният път, когато е бил достъпен файлът (когато файлът е бил прочетен или добавен);
  • време на модификация: последния път, когато съдържанието на файла е било модифицирано;
  • време за промяна: Последният път, когато inode на файла е променен.

За да филтрирате файлове по време, използвайте съответно опциите "-atime", "-mtime" и "-ctime".

Значение даден параметърпоказва преди колко дни е бил модифициран файлът. Както при размера на файла, можете да използвате знаците - и +, за да получите файлове, модифицирани преди по-малко от или повече от n дни.

Тоест, за да намерите файл, чието съдържание е променено преди 1 ден, използвайте:

За да покажете файлове, достъпени преди по-малко от 1 ден, използвайте:

намери / -atime -1

За да намерите файлове, чиито inodes са били променени преди повече от три дни, въведете:

намери / -ctime +3

Има и свързани параметри, които могат да се използват за указване на минути вместо дни:

Това ще върне файлове, чието съдържание е променено преди минута.

В допълнение, командата find може да сравнява файлове и да извежда по-нови:

намери / -нов мой файл

Търсене по собственик и привилегии

С командата find можете да търсите файлове по собственик или разрешения за файла.

За това се използват съответно опциите –user, –group и -perm. Например, за да намерите файл, притежаван от потребител с име syslog, въведете:

намиране / -потребителски системен журнал

По същия начин, за да покажете файлове, принадлежащи към групата в сянка, използвайте:

намери / -група сянка

Можете също да търсите файлове със специални привилегии.

За да намерите файл със специфични разрешения, използвайте:

намери / -perm 644

Този ред ще покаже всички файлове с такива разрешения.

За да изброите всички файлове, чиито привилегии са по-големи или равни на посочените, използвайте синтаксиса:

намери / -perm -644

Това ще върне всички файлове с допълнителни привилегии (например файл с 744 привилегии).

Филтриране на файлове по дълбочина

За да стартирате примерите този раздел, създайте структура на директория във временната директория. Тя трябва да се състои от три нива на директории, с десет директории на първото ниво. Всяка директория (включително тестовата) трябва да съдържа десет файла и десет поддиректории.

За да създадете такава структура, изпълнете следната команда:

cd
mkdir -p ~/тест/level1dir(1..10)/level2dir(1..10)/level3dir(1..10)
докосване ~/тест/(файл(1..10),level1dir(1..10)/(файл(1..10),level2dir(1..10)/(файл(1..10),level3dir( 1..10)/файл(1..10))))
cd ~/тест

Използвайте командите ls и cd, за да се запознаете с новосъздадената структура и да проверите дали всичко е създадено правилно. След това се върнете в тестовата директория test:

Този раздел ще ви покаже как да извлечете определени директории от тази структура. За да започнете, опитайте просто търсене на файл по име:

find -name file1







./level1dir7/level2dir8/level3dir6/file1
./level1dir7/level2dir8/level3dir5/file1

. . .

Тази команда доведе до доста обемен резултат. Като предадете този резултат на брояча, можете да видите, че накрая са изведени 1111 файла.

find -name file1 | wc -л
1111

Разбира се, в повечето случаи това заключение е твърде обемно и неудобно. Опитайте да го стесните.

За да направите това, можете да използвате опцията --maxdepth, за да зададете максималната дълбочина на търсене:

find -maxdepth num -name заявка

За да намерите file1 в директории ниво 1 и по-високо, посочете максимална дълбочина 2 (1 за директория Най-високо нивои 1 за директории от ниво 1).

find -maxdepth 2 -name file1
./level1dir7/file1
./level1dir1/file1
./level1dir3/file1
./level1dir8/file1
./level1dir6/file1
./файл1
./level1dir2/file1
./level1dir9/file1
./level1dir4/file1
./level1dir5/file1
./level1dir10/file1

Както можете да видите, този резултат има много по-удобна форма.

Освен това можете да посочите минимална дълбочина на търсене:

find -mindepth num -name заявка

Това се използва за намиране на файлове, които са в края на клоновете на директорията:

find -mindepth 4 -name файл
./level1dir7/level2dir8/level3dir9/file1
./level1dir7/level2dir8/level3dir3/file1
./level1dir7/level2dir8/level3dir4/file1
./level1dir7/level2dir8/level3dir1/file1
./level1dir7/level2dir8/level3dir8/file1
./level1dir7/level2dir8/level3dir7/file1
./level1dir7/level2dir8/level3dir2/file1
. . .

Отново този резултат ще съдържа огромен брой файлове (1000).

Максималната и минималната дълбочина на търсене могат да се комбинират, за да се намали обхватът на търсене:

find -mindepth 2 -maxdepth 3 -name файл
./level1dir7/level2dir8/file1
./level1dir7/level2dir5/file1
./level1dir7/level2dir7/file1
./level1dir7/level2dir2/file1
./level1dir7/level2dir10/file1
./level1dir7/level2dir6/file1
./level1dir7/level2dir3/file1
./level1dir7/level2dir4/file1
./level1dir7/file1
. . .

Изпълнение и комбиниране на команди

Помощната програма за намиране ви позволява да изпълните всяка спомагателна команда върху всички намерени файлове; това се прави с помощта на опцията –exec. Основният синтаксис изглежда така:

намери search_options -exec command_and_options () \;

Символите () се използват като контейнер за намерени файлове. Символи \; се използват, така че find да може да определи къде завършва командата.

Например, можете да намерите файлове с 644 разрешения (както в предишния раздел) и да промените техните разрешения на 664:

cd ~/тест
намирам. -perm 644 -exec chmod 664 () \;

След това можете да промените разрешенията на директорията:

намирам. -perm 755 -exec chmod 700 () \;

За да свържете множество резултати, използвайте командите -и или -или. Командата -and се приема, ако е пропусната.

намирам. -име файл1 -или -име файл9

Намиране на файлове с командата locate

Командата за намиране е алтернатива за намиране. Тази команда обикновено е по-бърза и може лесно да търси в цялата файлова система.

Можете да инсталирате тази команда с apt-get:

sudo apt-get актуализация
sudo apt-get install mlocate

Но защо командата locate е по-бърза от find? Въпросът е, че locate зависи от база данни от файлове във файловата система.

Обикновено скриптът cron актуализира тази база данни веднъж на ден; но може да се актуализира и ръчно. Изпълнете тази команда:

Запомнете: базата данни трябва да се актуализира редовно, за да бъде актуална; в противен случай няма да можете да намерите наскоро получени или създадени файлове.

За да намерите файлове с помощта на командата locate, просто използвайте следния синтаксис:

Резултатът също може да се филтрира.

Например, за да върнете само файловете, които съдържат самата заявка, вместо да изброявате всеки файл, който съдържа заявката в директориите, водещи до нея, можете да използвате флага -b (за да търсите само основно име, основното име на файла ):

За да накарате командата locate да върне само файлове, които все още съществуват във файловата система (т.е. файлове, които не са били изтрити между последното изпълнение на актуализацията и текущото извикване на locate), използвайте флага -e:

За да видите статистика, каталогизирана от командата locate, използвайте опцията -S:

намерете -S
База данни /var/lib/mlocate/mlocate.db:
3315 директории
37 228 файла
1 504 439 байта в имена на файлове
594 851 байта, използвани за съхранение на база данни

Резултати

Командите find и locate са отлични инструменти за намиране на файлове на UNIX-подобни операционни системи. Всяка от тези помощни програми има своите предимства.

Въпреки че командите за намиране и локализиране са много мощни сами по себе си, те могат да бъдат разширени чрез комбинирането им с други команди. След като се научите как да работите с find и locate, опитайте да филтрирате техните резултати с командите wc, sort и grep.

Етикети: ,

Актуализиран: 02.11.2019 г Публикувано: 25.07.2016

Най-гъвкавата и функционална команда за търсене в Linux е − намирам.Тази статия е измамен лист с примери за използването му.

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

намирам<где искать> <опции>

<где искать> — пътя до основната директория, откъдето да започне търсенето. Например, намерете /home/user - потърсете в съответната директория. За текущата директория използвайте точката ".".

<опции> — набор от правила за търсене.

* по подразбиране търсенето е рекурсивно. За да търсите в конкретна директория, можете да използвате опцията максимална дълбочина.

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

опция Описание
- име Търсене по име.
-име Търсене по име без значение на главни и малки букви.
-Тип

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

  • f - файл;
  • d - директория;
  • l - връзка;
  • p - тръба;
  • s е гнездото.
-размер Размерът на обекта. Посочва се в блокове от 512 байта или просто в байтове (със знака "c").
-mtime Време за промяна на файла. Посочва се в дни.
-ммин Промяна на времето в минути.
-време Времето, когато обектът е бил последно достъпен в дни.
-амин Време за последен достъп в минути.
-cвреме Последно модифицирансобственик или права върху обекта в дни.
-cmin Смяна на последния собственик или права за минути.
-потребител Търсене по собственик.
-група По група.
-перм С определени права за достъп.
- дълбочина Търсенето не трябва да започва от корена, а от най-дълбоко вложената директория.
-максимална дълбочина Максималната дълбочина на търсенето в директорията. -maxdepth 0 - търсене само в текущата директория. По подразбиране търсенето е рекурсивно.
-подрязвам Изключете изброените директории.
-монтиране Не преминавайте към други файлови системи.
-регекс По име с регулярен израз.
-regextype<тип> Типът на регулярния израз.
Показва съдържанието на символните връзки (символни връзки).
- празен Търсете празни директории.
-Изтрий Изтриване на намерени.
-лс Изход като ls -dgils
- печат Шоуто е намерено.
-печат 0 Път до намерени обекти.
-изп<команда> {} \; Изпълнете командата при намерени.
-Добре Издайте подкана преди да изпълните -exec.

Пълният набор от действителни опции може да бъде получен с командата човек намери.

Намерете примери за употреба

Намиране на файл по име

намери / -име "file.txt"

* в този примерще търси файл с име file.txtв цялата файлова система, започвайки от корена / .

Търсене на файл по част от името му:

намери / -име "*.tmp"

* тази команда ще търси всички папки или файлове в основната директория /, свършва след .tmp

Намерете всички файлове или папки, които започват с sess_и завършва с cd

намирам. -име "sess_*" -a -име "*cd"

* -а:логично И, -o:логическо ИЛИ.

Търсене по дата

1. Търсете файлове, които са се променили преди определен брой дни:

намирам. -тип f -mtime +60

* тази команда ще намери файлове, които са били променени преди повече от 60 дни.

2. Търсене на файлове с помощта на по-нова. Тази опция е налична от версия 4.3.3 (можете да я видите с командата намери --версия).

а) дата на промяна:

намирам. -тип f -newermt "2019-11-02 00:00"

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

намирам. -type f -newermt 2019-10-31 ! -newermt 2019-11-02

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

б) дата на кандидатстване:

намирам. -тип f -по-нов на 2019-10-08

* всички файлове, достъпени от 10/08/2019.

намирам. -тип f -по-ново в 2019-10-01 ! -по-нов на 2019-11-01

* всички файлове, достъпни през октомври.

в) дата на създаване:

намирам. -тип f -нов 2019-09-07

намирам. -type f -newert 2019-09-07 ! -newert "2019-09-09 07:50:00"

* файлове, създадени от 09/07/2019 00:00:00 до 09/09/2019 07:50

Тип

Търсене в текущата директория и всички нейни подпапки само за файлове:

* f— търсене само на файлове.

Търсене по разрешения

Търсим всички права на четене и писане:

намери / -perm 0666

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

намери / -perm 0600

Търсене на файлове по съдържание

find / -type f -exec grep -i -H "съдържание" () \;

* в този пример се извършва рекурсивно търсене на всички файлове в директорията / и списък на тези, съдържащи низа съдържание.

Сортирани по дата на модификация

find /data -type f -printf "%TY-%Tm-%Td %TT %p\n" | сортиране-r

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

намери /home/user/* -type d -exec chmod 2700 () \;

* в този пример търсим всички директории ( тип d) в директорията /начало/потребители задайте права за тях 2700 .

Почистване по график

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

Отворете cron задачи за редактиране:

И добавете:

0 0 * * * /bin/find /tmp -mtime +14 -exec rm () \;

* в този пример изтриваме всички файлове и папки от директорията /tmp,стотно по-стар 14 дни. Работата върви всеки ден в 00:00 .
* разглеждаме пълния път до намиращия изпълним файл с командата които намират- в различните UNIX системи може да се намира на различни места.

    Намерете файла по неговото име.Такова просто търсене се извършва с помощта на помощната програма за намиране. Командата по-долу ще търси файл в текущата директория и всички нейни поддиректории.

    find -iname "име на файл"

    • Въведете -iname вместо -name, за да игнорирате главни и малки букви във въведеното име на файл. Командата -name е чувствителна към главни и малки букви.
  1. Започнете да търсите в основната директория.За да започнете търсене в цялата система, добавете модификатора / към заявката. В този случай командата find ще търси файла във всички директории, започвайки от корена.

    намери / -iname "име на файл"

    • Можете да започнете да търсите в определена директория; за да направите това, заменете / с път към директория, например /home/max.
    • Може да се използва. вместо / за да търсите само файла в текущата директория и нейните поддиректории.
  2. Използвайте заместващия знак.* за намиране на файлове, чието име отговаря на част от заявката. Заместващият знак * може да се използва за търсене на файл пълно имекойто е неизвестен, или намерете всички файлове с определено разширение.

    намери /home/max -iname "*.conf"

    • Тази команда ще намери всички .conf файлове в папката Max на потребителя (и нейните подпапки).
    • Използвайте тази команда, за да намерите всички файлове, чиито имена отговарят на част от заявката. Например, ако вашият компютър има много файлове, свързани с WikiHow, потърсете всички файлове, като напишете „*wiki*“.
  3. Улеснете управлението на вашите резултати от търсене.Ако има твърде много резултати от търсенето, е трудно да намерите желания файл сред тях. Използвайте символа | така че резултатите от търсенето да се филтрират от командата less. Това ще улесни прегледа и филтрирането на резултатите от търсенето.

    намери /home/max -iname "*.conf" | по-малко

    Намерете конкретни елементи.Използвайте модификатори, за да показвате само определени елементи в резултатите от търсенето. Можете да търсите обикновени файлове (f), директории (d), символни връзки (l), символни I/O устройства (c) и блокови устройства (b).

    find / -type f -iname "име на файл"

  4. Филтрирайте резултатите от търсенето си по размер на файла.Ако вашият компютър има много файлове с подобни имена, но знаете размера на файла, който търсите, филтрирайте резултатите от търсенето си по размер на файла.

    намери / -размер +50M -iname "име на файл"

    • Тази команда ще намери всички файлове, по-големи от 50 MB. Използвайте модификатора + или -, за да посочите увеличение или намаляване на размера. Ако няма + или - модификатор, командата ще намери файлове, които точно съответстват на определения размер.
    • Резултатите от търсенето могат да бъдат филтрирани по байтове (c), килобайти (k), мегабайти (M), гигабайти (G) или блокове от 512 байта (b). Имайте предвид, че горните модификатори са чувствителни към главни и малки букви.
  5. Използвайте логически оператори (булеви оператори), за да комбинирате филтри за търсене.Можете да използвате операторите -и, -или, -не, за да комбинирате различни термини за търсенев едно искане.

    find /travelphotos -type f -size +200k -not -iname "*2015*"

    • Тази команда ще намери файлове в папката „Travelphotos“, които са по-големи от 200 KB и нямат числото 2015 в имената си.

Несъмнено при работа с Linux понякога се налага търсене на файловес определени характеристики. Тези характеристики могат да бъдат размерът или типът на файла, разрешенията и други.


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


Днес ще анализираме търсене на файлове в linuxи дайте основните командни опции намирамкоито можете да приложите в работата си.

Формат на командата намирам:

намирампът-настроики

където пъте директорията за търсене. Можете да посочите следните стойности за пътя:

. - търсене в текущата директория;

/ - търсене от основната директория;

~ - търсене в началната директория.

Що се отнася до опциите, тук има много по-голям списък, който е изключително необходимо да се прочете внимателно (това ще помогне много в бъдеще!). Така, основни опции на командата find:

- име- търсене на файлове по име по зададения шаблон;

-потребител- търсене на файлове, принадлежащи на посочения потребител;

-група- търсене на файлове, принадлежащи към определената група;

-перм- търсене на файлове с посочения режим на достъп;

-Тип- търсене на файлове от определен тип. Типовете също са достатъчни:

  • b - специален блок файл;
  • d - директория;
  • c е файл със специални знаци;
  • f - обикновен файл;
  • l - символна връзка;
  • p - наречена тръба;
  • s - гнездо.
-размер- търсене на файлове с размер n единици;

-mtime -n +n- търсене на файлове, чието съдържание е променено преди по-малко от (-) или повече от (+) дни.

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

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

Примери с опцията -name :

$ намери /mnt/usb -име "*.mp3" -печат

ще търси всички файлове (обозначени със знака *), които имат разширение .mp3 на USB устройството, монтирано в директорията /mnt/usb.

$ find ~ -name "test*" -print

ще покаже списък с файлове в началната директория, започващ с test.

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

$ намери / -име "*" -печат

Горната команда ще намери всички файлове в системата, започващи с буквите a до j.

Намиране на файлове със специфични режими на достъп

Ако трябва да намерите файлове, които имат определени режими на достъп, можете да използвате опцията -пермкоето ще ви помогне лесно.

Например, нека потърсим файлове с режим на достъп 775 (собственик и група имат пълни права, други потребители имат ограничения за запис), намиращи се в текущата директория:

$ намирам. -perm 775 -печат

Търсене с намирамс опцията -perm можете да използвате друг начин - можете да поставите тире пред стойността на режима и тогава ще се извърши търсене на файлове, за които са зададени всички посочени битове за разрешение. Освен това в този случай останалите битове се игнорират.

Например, нека намерим файлове за коя група потребители имат пълен достъп:

$ намирам. -perm -070 -печат

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

Търсене на файлове на определен потребител или група

Търсенето на файлове на конкретен потребител е изключително просто в изпълнението му. За да направите това, просто изпълнете командата:

$ find / -user admin -print

Горната команда ще произведе търсене на файловев системата, която е собственост на администраторския потребител.

За да намерите файлове, принадлежащи към определена група (например мениджъри), изпълнете командата:

$ намиране / -мениджъри на групи -печат

За да търсите файлове на несъществуващи потребители или групи, можете да използвате опциите -ноусери -ногрупа:

$ намери / -nouser -печат

$ намери / -nogroup -print

Търсене на файлове от определен тип

Една от удобните функции на командата намирам, е способността да търсите файлове от определен тип. Обмислете опциите за използване на опцията -Тип:

Търсене на символни връзки в директорията /etc:

$ find /etc -type l -print

Показване на списък с директории, налични в директорията /mnt/raid

$ намери /mnt/raid -type d -print

Търсене на файлове с определен размер

опция -размерви позволява да търсите файлове с определен размер и изглежда така, когато се изпълни:

$ намирам. -размер 2000k -печат

Горната команда ще намери и покаже 2-мегабайтовите файлове, намиращи се в текущата директория на екрана. Ако например трябва да намерите файлове с размер под 500 килобайта, командата ще изглежда така:

$ намирам. -размер -500k -печат

Ако трябва да намерите файлове, по-големи от 600 мегабайта, използвайте командата:

$ намери / -размер +600M -печат

Търсене на файлове с помощта на опцията -mtime

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

Например, бяхме изправени пред задачата да търсим файлове, намиращи се в директорията /mnt/raid/upload, които са се променили през последните 5 дни. Тази команда ще ни помогне:

$ намери /mnt/raid/upload -mtime -5 -print

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

$ намери /mnt/raid/upload -7 -print

Екип намираме много удобен инструмент за търсене на файловеи може да се използва и за търсене на файловена NFS устройства (мрежа файлови системи), но в този случай е необходимо да се вземе предвид, че ще отнеме много повече време за търсене на нещо в NFS, отколкото на локални дискове.

В тази статия разгледахме само основните опции на командата find, които ще ви помогнат в работата ви. Използвайте това, което е удобно и не се притеснявайте за дреболии!

Докато работите във всяка операционна системапонякога има нужда да използвате инструменти за бързо намиране на конкретен файл. Това важи и за Linux, така че всичко ще бъде обсъдено по-долу. възможни начинитърсене на файлове в тази ОС. Ще бъдат представени като инструменти файлов мениджър, както и командите, използвани в "терминал".

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

опция за намиране на път

където пъте директорията, в която ще се извърши търсенето. Има три основни варианта на пътя:

  • / - търсене в главната и съседните директории;
  • ~ - търсене в началната директория;
  • ./ - търсене в директорията, в която потребителят се намира в момента.

Можете също така да посочите пътя директно до самата директория, в която трябва да се намира файлът.

Настроики намираммного и благодарение на тях можете гъвкаво да конфигурирате търсенето, като зададете необходимите променливи:

  • - име- извършване на търсене въз основа на името на търсения елемент;
  • -потребител- търсене на файлове, които принадлежат на конкретен потребител;
  • -група- търсене на определена група потребители;
  • -перм- показване на файлове с посочения режим на достъп;
  • -размер- търсене въз основа на размера на обекта;
  • -mtime +n -n- търсене на файлове, които са променени повече от ( +n) или по-малко ( ) преди дни;
  • -Тип- търсене на файлове от определен тип.

Има и много видове необходими елементи. Ето техния списък:

  • b- блок;
  • f- обикновени;
  • стр- наименована тръба;
  • д- каталог;
  • л- връзка;
  • с- гнездо;
  • ° С- символично.

След подробен анализ на синтаксиса и опциите на командата намирамможете да преминете директно към илюстративни примери. Поради изобилието от възможности за използване на командата, няма да бъдат дадени примери за всички променливи, а само за най-използваните.

Метод 1: Търсене по име (опция -име)

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

Търсене по разширение

Да приемем, че трябва да намерите файл с разширение ".xlsx", който се намира в указателя падаща кутия. За да направите това, трябва да използвате следната команда:

намери /home/user/Dropbox -име "*.xlsx" -печат

От неговия синтаксис можем да кажем, че търсенето се извършва в директорията падаща кутия ("/home/user/Dropbox"), като желаният обект трябва да е с разширение ".xlsx". Звездицата показва, че търсенето ще се извърши на всички файлове с това разширение, независимо от името им. "-печат"показва, че резултатите от търсенето ще бъдат показани.

Търсене по име на файл

Например искате да търсите в директория "/У дома"файл с името "лумпици", но разширението му е неизвестно. В този случай трябва да направите следното:

find ~ -name "lumpics*" -print

Както можете да видите, използваният тук символ е «~» , което означава, че търсенето ще се извършва в началната директория. След вариант "-име"посочва се името на търсения файл ( "lumpics*"). Звездичка в края означава, че търсенето ще се извършва само по име, без да се отчита разширението.

Търсене по първата буква в името

Ако помните само първата буква от името на файла, има специален команден синтаксис, който ще ви помогне да го намерите. Например искате да намерите файл, който започва с буквата от "g"преди "аз"и не знаете в коя директория се намира. След това трябва да изпълните следната команда:

намери / -име "*" -печат

Съдейки по знака “/”, който идва непосредствено след основната команда, търсенето ще се извърши, като се започне от основната директория, тоест в цялата система. Следваща част «*» означава, че търсената дума ще започва с определена буква. В нашия случай от "g"преди "аз".

Между другото, ако знаете разширението на файла, след символа «*» можете да го посочите. Например, трябва да намерите същия файл, но знаете, че има разширение ".odt". След това можете да използвате тази команда:

find / -name "*.odt" -print

Метод 2: Търсене по режим на достъп (опция -perm)

Понякога трябва да намерите обект, чието име не знаете, но знаете какъв режим на достъп има. След това трябва да приложите опцията "-perm".

Използването му е доста просто, просто трябва да посочите местоположението за търсене и режима на достъп. Ето пример за такава команда:

намери ~ -perm 775 -печат

Тоест търсенето се извършва в домашния дял и търсените обекти ще имат достъп 775 . Можете също така да предпишете символа "-" преди това число, тогава намерените обекти ще имат битове за разрешение от нула до посочената стойност.

Метод 3: Търсене по потребител или група (опции -user и -group)

Всяка операционна система има потребители и групи. Ако искате да намерите обект, който принадлежи към една от тези категории, можете да използвате опцията "-потребител"или "-група", съответно.

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

Например, трябва да намерите в директорията падаща кутияфайл Лампи, но не знаете как се казва, просто знаете, че принадлежи на потребителя "потребител". След това трябва да изпълните следната команда:

намери /home/user/Dropbox -user потребител -print

В тази команда сте посочили необходимата директория ( /home/user/Dropbox), посочи, че трябва да потърсите файл, притежаван от потребителя ( -потребител), и посочи на кой потребител принадлежи този файл ( потребител).

Търсене на файл по името на неговата група

Търсенето на файл, който принадлежи към определена група, е също толкова лесно - просто трябва да промените опцията "-потребител"на опция "-група"и посочете името на тази група:

намери / -група гост -печат

Тоест вие сте посочили, че искате да намерите файл в системата, който принадлежи към групата "гост". Търсенето ще се извърши в цялата система, това е обозначено със символа «/» .

Метод 4: Търсене на файл по неговия тип (опция -type)

Намирането на определен елемент в Linux от определен тип е доста просто, просто трябва да посочите подходящата опция ( -Тип) и посочете типа. В началото на статията бяха изброени всички типови обозначения, които могат да се използват за търсене.

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

намери ~ -тип b -печат

Съответно сте посочили, че търсите по тип файл, както се вижда от опцията "-Тип", и след това определи неговия тип, като постави символа на блок файл - "б".

По същия начин можете да покажете всички директории в желаната директория, като въведете символа в командата "д":

намери /home/user -type d -print

Метод 5: Търсене на файл по размер (опция -size)

Ако всичко, което знаете за даден файл, е неговият размер, тогава дори това може да е достатъчно, за да го намерите. Например, ако искате да намерите файл от 120 MB в определена директория, направете следното:

намери /home/user/Dropbox -размер 120M -печат

Както можете да видите, файлът, от който се нуждаем, беше намерен. Но ако не знаете в коя директория се намира, можете да търсите в цялата система, като посочите основната директория в началото на командата:

намери / -размер 120M -печат

Ако знаете приблизителния размер на файла, тогава има специална команда за този случай. Трябва да пишете "терминал"същото, но преди да посочите размера на файла, поставете знак «-» (ако искате да намерите файлове, по-малки от определения размер) или «+» (ако размерът на файла, който търсите е по-голям от посочения). Ето пример за такава команда:

намери /home/user/Dropbox +100M -печат

Метод 6: Търсене на файл по дата на модификация (опция -mtime)

Има моменти, когато е най-добре да търсите файл по датата, на която е бил модифициран. В Linux това става с опцията "-mtime". Използването му е доста просто, нека разгледаме всичко с пример.

Да речем в папка "Изображения"трябва да намерим обекти, които са били модифицирани през последните 15 дни. Ето какво да пишете "терминал":

намери /home/user/Images -mtime -15 -print

Както можете да видите, тази опция показва не само файлове, които са се променили през посочения период, но и папки. Тя също работи в обратна страна- можете да намерите обекти, които са били променени след посочения период. За да направите това, трябва да въведете знак преди цифровата стойност «+» :

намери /home/user/Images -mtime +10 -print

GUI

Графичният интерфейс прави живота много по-лесен за начинаещи, които току-що са инсталирали Linux дистрибуция. Този методтърсенето е много подобно на това на Windows, въпреки че може да не предоставя всички предимства, които предлага "терминал". Но на първо място. И така, нека да разгледаме как да търсите файлове в Linux с помощта на GUIсистеми.

Метод 1: Търсете в системното меню

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