Намерете синтаксиса. Командата find и нейните опции са показани в примери. Основни параметри на командата find


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

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

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

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

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

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

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

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

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

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

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

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

Примери за използване на find

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

намери / -име "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"

* ще покаже всички файлове, които са променени след 11/02/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 е удобна.

Питате: Как да го използвам? Има огромна страница с ръководство за тази програма, ще разгледаме някои често срещани случаи.

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

Linux търсене на файлове по име

Това е същата проста команда:

Намерете - име любов
Ако има файл с име „love“, тогава командата find ще намери местоположението на файла или няколко файла по следния начин:

Jzb@kodos:~$ find -name love ./projects/love jzb@kodos:~$
Например ще търсим всички файлове в mp3 формат и ще направим пълен списък във файла:

Файл /home/artix -iname ".mp3" > ./list.txt

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

След това ще намерим файлове във формат txtx, не само файлове, но текстови файлове, които съдържат думата „LEON“:

Файл /home/artix -iname ".txt" -exec grep -H "LEON" "()" \; > ./list.txt
Страхотно, вече имаме оказва се, че търсите Linux файлове с думата"ЛЕОН". По същия начин можете да премахнете ненужните неща и във фонов режим, за да можете да продължите да работите:

Файл /home/artix -iname ".bak" -exec rm "()" \; и
Това улеснява живота ни. Това са най-простите неща, но има толкова много полезни неща в тях.

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

Намери ./ -mmin -10 #дата на промяна по-малко от 10 минути намери ./ -mtime +1 #дата на модификация повече от 24 часа намери ./ -тип f -atime +10 # време за достъп повече от 10 дни намери ./ -тип f -amin - 10 #дата на промяна последните 10 минути

Намиране на текст във файлове на Linux

Често се случва да трябва да търсите текст във файлове на Linux. Ще дам 2 примера за търсене на файлове: (linux, freebsd) имате нужда от фрагмент от текст във файловете:

# find /var/named/ -type f -exec grep "MX" () \; serversnetwork.info. 14400 В MX 10 поща
и още едно:

# grep -rl "MX" /var/named/ /var/named/serversnetwork.info.db

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

Намерете -размер 95k.
Това ще намери файлове с размер 95k. Но тази опция се използва много рядко. Те използват предимно команди, които могат да се използват за намиране на файл, по-голям или по-малък от определен размер. Например опцията:

Намерете -размер +150k
Трябва да показва файлове, които са по-големи от 150k. И опцията

Намерете -размер -94k
всичко, което е по-малко от 94K.

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

$намери. -размер 3500k -печат
Тази опция ще търси файлове в Linux и ще ги показва на екранатези с размер 3500 килобайта, които се намират в тази папка. Ако трябва да намерите файлове, които са по-малки от 250 килобайта, командата ще изглежда така:

$намери. -размер -200k -печат
Ако трябва да намерите файлове, чийто размер е по-голям от 555 мегабайта, тогава ще използваме опцията:

$ намиране / -размер +555M -печат
Може би тук ще завърша написването на моята статия.

Сега може да можете сами да търсите файлове, да търсите текст във файлове на Linux, да търсите файлове по дата!

Благодаря на всички, чао!

Проблемът с намирането на необходимите файлове или папки беше, е и винаги ще бъде актуален. Хората постоянно забравят къде точно са записали файла, от който се нуждаят. Crap.doc или Super-music.mp3. Следователно, независимо от вашата операционна система, търсенето на файлове или директории винаги ще бъде търсено, независимо дали на Linux, Windows или MacOS X. Инструментите за търсене просто ще бъдат различни. Търсенето в Linux може да бъде разделено на две категории: графично и конзолно. Да започнем с гордостта на всички луниксоиди - Терминалът. Има една чудесна програма за търсене в линукс т.нар намирам.
Форматът на командата find е:
намери път до директорията, в която искаш да търсиш - опции (ключове)
където пътят е директорията, в която да търсите. Могат да бъдат посочени следните пътища:

. – търсене в текущата директория;
/ – търсене от основната директория, т.е. в цялата система;
~ – търсене в началната директория.
Въпреки че пътят, разбира се, може и ще бъде различен. По-горе са само стандартните пътища.

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

Има и много видове:

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

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

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

намери ~ име на музика "*.mp3"

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

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

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

sudo find / -name "*.pdf"

намери ~ -име "Снимка*"

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

Ключът `-name' прави разлика между главни и малки букви; За да игнорирате тези критерии по време на търсенето, трябва да използвате опцията '-iname'. След това програмата ще намери всички файлове, които ще се състоят от буквите: Foto, foto или FOTO.

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

find ~ -name "Foto*" > results.txt

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

намери / -име .профил

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

Можете да търсите файл, ако знаете част от името му. В този случай командата ще бъде следната:

намери /home/dm/Music/Clips/ -name "*uniform*"

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

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

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

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

Ако искате да намерите файлове, които имат определени режими на достъп, опцията -perm може да ви помогне с това. Например, нека намерим файлове, чийто режим на достъп е 775 и се намират в текущата директория:

намирам . -perm 775

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

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

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

Тази команда ще намери файлове в системата, които са собственост на потребител comp.
И за да намерите файлове, които принадлежат към определена група (например group2), изпълнете командата:

намери / -група група2

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

намирам / -ноузер

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

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

Командата find има друга полезна функция; тя може да намира файлове от определен тип. За да направите това, използвайте превключвателя -type. Нека намерим символни връзки в директорията /etc:

намери /etc -тип l

Нека намерим списък с директории, които присъстват в папката /mnt/raid

намери /mnt/raid -тип d

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

Превключвателят -size ви позволява да намирате файлове с необходимия ви размер.

намирам . -размер 2000к

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

намирам . -размер -500к

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

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

Търсене на файлове с помощта на ключа -mtime

Превключвателят -mtime ви позволява да намерите файлове, които са се променили в рамките на определен период от време.
Например, имаме задача да намерим файлове, които се намират в папка /home/dm/Video и които са променени през последните 10 дни.

намери /home/dm/Video -mtime +10

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

намери /home/dm/Video -7

В следващата статия ще пиша за инструментите за графично търсене в Ubuntu Linux.

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

1) намерете:За да търсите файлове от командния ред, можете да използвате командата „намери“. Тази команда има следния синтаксис:

действие критерии за намиране на пътя

"път" - Секция за указване на директория за търсене. Ако нищо не е посочено, търсенето се извършва в текущата директория.

"критерии" - Опции за търсене.

"действие" - Опции, които влияят или контролират състоянието на търсене, напр.

2) намерете:Екип "намери"Това е алтернатива на командата „find -name“. Командата find търси файлове в избраната част от файловата система и процесът може да не е много бърз. От друга страна, командата locate търси файлове в базата данни, създадена специално за тази цел /var/lib/locatedb, което е много по-бързо. За да актуализирате базата данни, използвайте командата актуализиранb.

3) където е:къде е"връща местоположението на кода (опция -b), страниците с ръководство (опция -m) и изходните файлове (опция -s) за посочената команда. Ако не са зададени опции, се показва цялата налична информация. Тази команда е по-бърза от „ намирам"но по-малко пълно.

4) което:екип " който"търси всички пътища, изброени в променливата PATH за посочената команда.

5) тип:

Когато се извиква без опции, показва как ще бъдат интерпретирани имената

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

съответно име. Списъкът включва също псевдоними и функции,

освен ако опцията не е посочена -стр. ДА СЕ

хешът на командата не е достъпен, ако опцията е посочена . Екип Типвръща 0,

ако е намерен поне един от аргументите и 1 в противен случай.

Пазач

Explo.ru - всичко за туризма и отдиха: обиколки и екскурзии в последния момент до Турция, Египет,

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

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

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

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

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

намери [папка] [опции] критерии шаблон [действие]

Папка- директорията, в която ще търсим

Настроики- допълнителни параметри, например дълбочина на търсене и др.

Критерий- по какви критерии ще търсим: име, дата на създаване, права, собственик и др.

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

Основни параметри на командата find

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

  • никога не отваряйте символни връзки
  • - получава информация за файлове чрез символни връзки. За по-нататъшната обработка е важно да не се обработва връзката, а самият файл.
  • -максимална дълбочина- максимална дълбочина на търсене за поддиректории за търсене само в текущата директория, зададена на 1.
  • - дълбочина- търсене първо в текущата директория, а след това в поддиректории
  • -монтиранетърсене на файлове само в тази файлова система.
  • -версия- показва версията на помощната програма за намиране
  • - печат- показване на пълни имена на файлове
  • - тип f- търсене само на файлове
  • - тип d- търсене на папка в Linux

Критерии

Командата find в Linux има много критерии и отново ще разгледаме само основните.

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

Примери за използване

Сега нека да разгледаме примерите за намиране, за да разберете по-добре как да използвате тази помощна програма.

1. Търсене във всички файлове

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

2. Търсене на файлове в определена папка

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

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

намирам . -име "*.jpg"

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

намирам . -име "тест*"

3. Ограничаване на дълбочината на търсене

Търсете файлове по име в Linux само в тази папка:

намирам . -maxdepth 1 -име "*.php"

4. Обръщане на шаблона

Намерете файлове, които не отговарят на модела:

намирам . -not -name "тест*"

5. Няколко критерия

Търсете с командата find в Linux, като използвате няколко критерия, с оператор за изключване:

намирам . -име "тест" -не -име "*.php"

Намира всички файлове, започващи с test, но без разширението php. Сега нека да разгледаме оператора OR:

find -name "*.html" -o -name "*.php"

6. Множество директории

Търсене в две директории едновременно:

find ./test ./test2 -type f -name "*.c"

7. Намерете скрити файлове

Намерете скрити файлове:

find ~ -type f -name ".*"

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

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

намирам . тип f-perm 0664

Намерете файлове със зададен флаг suid/guid:

намери / -perm 2644

намери / -maxdepth 2 -perm /u=s

Търсене на файлове само за четене:

намери /etc -maxdepth 1 -perm /u=r

Намерете само изпълними файлове:

намери /bin -maxdepth 2 -perm /a=x

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

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

намирам . -потребител sergiy

Търсене на файлове в Linux, принадлежащи към група:

намерете /var/www -групов разработчик

10. Търсене по дата на модификация

Търсенето на файлове по дата в Linux се извършва с помощта на параметъра mtime. Намерете всички файлове, променени преди 50 дни:

намери / -mtime 50

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

намери / -atime 50

Намерете всички файлове, модифицирани преди 50 и 100 дни:

намери / -mtime +50 –mtime -100

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

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

Намерете всички файлове, по-големи от 50 мегабайта:

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

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

намери / -размер +50M -размер -100M

Намерете най-малките файлове:

намирам . -тип f -exec ls -s () \; | сортиране -n -r | глава -5

Най-големият:

намирам . -тип f -exec ls -s () \; | сортиране -n | глава -5

12. Търсете празни файлове и папки

намери /tmp -тип f -празно

$ намери ~/ -тип d -празно

13. Действия с намерени файлове

За да изпълните произволни команди върху намерени файлове, използвайте опцията -exec. Например, стартирайте l, за да получите подробна информация за всеки файл:

намирам . -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 и прави много лесно получаването на списък с файловете, от които се нуждаете. Препоръчително е всички системни администратори да го знаят. Ако трябва да търсите конкретно по съдържанието на файлове, тогава е по-добре да използвате командата.