Командата находка в Linux

Командата находка в Linux / FreeBSD. Синтаксисът на командата находка.

Синтаксис на находката:

# Намери [път] [опции] [Търсене] [File Operations]

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

-atime N Последния път преписката е била преглеждана преди N дни
-Промяната на прави времето на промяна N Последно файла беше преди N дни
-име на шаблон, името на файла (име образец) без път. Препоръчително е да се винаги модел в кавички
-размер [±] N [cwbkMG] Големина равнява N блокове, ако е посочено + N, тогава размерът на файла е по-голяма от N, -N - по-малко. N означава след размер символ блок. б - 512 байта, с - байт, W - 2 байта, К - килобайти, М - мегабайта, G - гигабайта.
-файлов тип N тип N. Най-често използваните стойности за N: г - директория, F - файл.
-Потребител файл е собственост на потребител с име име.

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

# Find. -тип е -name "

Намери текущата директория редовни файлове (без директориите), които започват с характер "

# Find. -newer file.bak -тип е -print

Намери текущата директория модифицираните файлове по-късно от file.bak файл.

оператори
Критерии могат да се комбинират с помощта на оператори. По-долу са операторите по реда на техния приоритет.

Кратка форма Long Form Описание
!-не критерий Отрицание (връща истина, ако фалшив тест)
kriteriy1-а kriteriy2; и оператора и (вярно, ако kriteriy1 и kriteriy2 вярно)
kriteriy1-о -OR kriteriy2 или оператор (вярно, ако kriteriy1 kriteriy2 или вярно)

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

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

#find. \ (-name "% *" -OR -name "температура *" \) -тип е -print

Търсене на файлове в текущата директория, които започват с характер "%" или в «температура» и са файловете (от типа F), но не директории.

# Find. -maxdepth 1 \ (\ (-size + 600 милиона; и -size -1G \) -OR -name "* .mpeg" \); и -тип е

Намери текущата директория (не обработка поддиректории - -maxdeph 1) обикновени файлове (-file е) по-голям от 600MB и по-малко от 1 GB (-size) или файл, чието име завършва на «.mpeg» (-name).

файлови операции
Когато стартирате командата находка, можете да извършвате различни операции на намерените файлове. Помислете за основните от тях.

-EXEC команда \; - Run команда. Имайте предвид, че след като отборът сложи наклонена черта и точка и запетая.
-execdir команда \; - Същото като EXEC, но се нарича командата от поддиректорията съдържащ текущия файл.
-ОК команда \; - Същото като EXEC, но преди преработката на следващия файл ще бъдете подканени за командата.
-okdir команда \; -Какво е това ОК, за да execdir.
-печат - Output името на файла на екрана.
-LS - изпълни команда ли -dils на текущия файл.

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

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

# Find. -size + 1000C -тип е -ls

Намерете най-актуалните файлове директории са по-големи от обичайните размер на 1000 байта, и изпълнява с командата LS -dils на (LS действие).

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

"И за да изготви искане за всеки файл, за да бъде изтрита (за извършване на RM команда).

Търсене на техния размер на файла

# Намери / Var / дневник -name "* .log"; и \ (-size + 1 k; и -size -1000k \); и -тип е -print

Те ще бъдат открити и показва файловете с разширение * .log на, вариращи по размер от 1 КБ да 1000Kb

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

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

-user или -uid опции ви позволяват да търсите за файлове по потребителски идентификатор (UID) и името на потребителя и -група опция от името на групата.

# Find. -name "* .log" -user корен -група корен

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

# Намерете -user корен -o -user WWW

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

Използване на регулярните изрази

намерите помощна програма поддържа регулярни изрази. Веднага даде пример. Да кажем, че искате да намерите всички файлове с разширения .php или .js. Можех да го изпълним, както следва:

# Намерете -regextype POSIX-egrep -regex "* (PHP | JS) $.

Това изглежда малко по-трудно, нали? Както опровержение се отбележи, че синтаксиса използва тук egrep (-regextype POSIX-egrep). и след това се определя регулярен израз се използва за търсене. Изразяване започва и завършва с единични кавички до себе си до черупка черупка не се опитват да се справят с регулярен израз. След това идва изразът. *, Която използва маска, който съвпада с всеки символ или набор от знаци. Част (PHP | JS) казва, че е необходимо да се търси PHP или JS. Pipeline (|) в този израз съответства на логическия израз "или". И накрая, знака за долар ($), което завършва с израз казва, че разширяването ще се търсят в края на името на файла. Така че, ако имате файл с име js.txt, тя може да се разминават критериите за търсене.

в крайна сметка работи
В помощната програма намерите там през цялото време, за да си намерят работа с файла. Можете да търсите по време на достъпа (-atime), или по време на последната модификация на файл (-mtime), или по време на последната го промените (-ctime).

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

Ако искате да търсите файлове в определен диапазон, можете да комбинирате с опции. Така че намери -mtime 2 -mtime -5 команда е да "преди два дни или повече, но преди не повече от пет дни."

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

# Намерете WordPress -name '* JS "

# Намерете WordPress -maxdepth 1 -name '* JS "

Търсенето ще се извършва само в директорията на WordPress, но не и в поддиректории. Ако промените -maxdepth 2, то ще се търси в поддиректории на директорията WordPress, но не и в по-дълбоки поддиректории.

Комбинирането на полезност намерите с други отбори
Сега, след като сте намерили файловете, които търсите, какво ще правиш с тях? Можете да използвате инструмента за намиране на параметрите на xargs или -exec. които ви позволяват да се уточни действията за извършване на файлове, след като ги намери.

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

# Намерете -user корен -exec chown WWW-данни <> \;

Сходни публикации: