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

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

За дистрибуциите на Linux е разработена команда, наречена find, която е разработена за рекурсивно филтриране на обекти във файловата система въз основа на условен механизъм. С тази команда find можем да търсим файл или директория в нейната файлова система.

Ако включим параметъра -exec, файловете могат да бъдат намерени и обработени веднага в рамките на същата команда.

1. Намерете файлове по име или разширение Linux команди


Можем да използваме find от командния ред, за да намерим конкретен файл по име или разширение.

Неговият синтаксис е:

 find / home / username / -name "* .extension"
Например, ще търсим файлове, завършващи на .gz:

Увеличете

2. Удобни команди и синтаксис за използване с команди за намиране на Linux


С командата find имаме някои опции за параметри като:
 намери опции начало / път израз
Атрибутът options ще контролира поведението и метода за оптимизация на процеса на търсене. Атрибутът home / path ще определи директорията от най-високо ниво, където find ще започне да филтрира.

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

 намери -O3 -L / var / www / -name "* .html"
Тази команда позволява максимално ниво на оптимизация (-O3) и ви позволява да следвате символните връзки (-L), за да търсите в цялото дърво на директориите по пътя / var / www / за файлове, завършващи с .html.

Увеличете

3. Опции и оптимизация с команди Find Linux


Конфигурацията по подразбиране на Find за търсене ще игнорира символните връзки (преки файлове), ако искаме find да следва и да вземе символичните връзки, можем да добавим опцията -L към командата, както видяхме по -рано. Find има три (3) нива на оптимизация, които са -O1, -O2 и -O3.

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

Оптимизацията на ниво -O2 дава приоритет на филтрите за имена на файлове, както в -O1, и след това изпълнява филтриране на всички типове файлове, преди да се пристъпи към други по -интензивни условия. Оптимизацията на ниво -O3 позволява да се намери по -задълбочена оптимизация и пренарежда всички тестове въз основа на относителните им разходи и вероятността за по -добри резултати.

Някои от опциите са:

Това е филтър, базиран на името на първия файл

 -O1 (по подразбиране)

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

 -O2

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

 -O3

Търси текуща директория, както и всички поддиректории X нива дълбоко

 -максимална дълбочина X

Търсете независимо от регистъра на текста

 -име

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

 -не

Извършете търсене на файл

 -тип f

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

 -тип d

4. Намерете файлове по команди на Linux с модификация на времето


Командата find има възможност да филтрира йерархия на директория въз основа на последната промяна на файла.
Синтаксисът е следният:
 find / -name "* conf" -mtime 8 find / home / user / -name "* conf" -mtime 2
Първата команда ще покаже списък с всички файлове в цялата файлова система, които завършват със символи conf и са променени през последните 8 дни. Втората команда филтрира домашната директория на потребителя за файлове с имена, които завършват с символи conf и са били променени през предходните 2 дни.

Използвайте Grep, за да намерите файлове, базирани на съдържание, команди на LinuxКомандата find може да филтрира само йерархията на директорията въз основа на име на файл и метаданни, така че ако трябва да търсите въз основа на съдържанието на файла, използвайте инструмент като grep.

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

 намирам. -тип f -exec grep "пример" '{}' \; -печат
Това намира всички обекти в текущата йерархия на директория (.) Който е файл (-тип f) и след това изпълнява командата grep "пример" за всеки файл, който отговаря на условията. Съответстващите файлове се отпечатват на екрана (-принт). Скобите ({}) са заместител на резултатите от търсенето. {} Е затворено в единични кавички ('), за да се избегне греп изобразяването на неправилно име на файл. Командата -exec се прекратява с точка и запетая "(;)", която трябва да се избяга "(\;)", за да се избегне интерпретирането от черупката.

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

Неговият синтаксис е:

 намирам. -име "rc.conf" -exec chmod o + r '{}' \;
Това ще филтрира всички обекти в текущата йерархия (.) За файлове с име rc.conf и ще изпълни командата chmod или + r, за да промени разрешенията на резултатите от търсенето.

Така че find е съюзник за пълно търсене на файлове в Linux.

wave wave wave wave wave