Как да използвате командата Find в Linux

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

Когато решим да използваме командата find, можем да търсим и локализираме списъка с файлове или директории въз основа на условията, които посочваме в синтаксиса за използване за изпълнение. След това ще видим какво представлява командата find и как можем да я използваме в Linux, използвайки различните й параметри.

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

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

  • Разрешения
  • Групи
  • Потребители
  • Тип файл
  • Дата на създаване или промяна
  • Налични размер и повече опции

Solvetic ще обясни различни методи за ефективно използване на командата Find в Linux и за този случай ще използваме Ubuntu 19.04. Ще видим как можем да използваме командата find за намиране и търсене на файлове с филтри, използвайки терминала на Linux.

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


Това е най -съществената част от използването на командата Find и за това е необходимо или да знаете името на обекта или неговото разширение (.mp4, .txt, Jpg.webp и т.н.), за да получите директен резултат.

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

 find -name Solvetic.docx 
Стъпка 2
В резултат на това ще видим папката, където се хоства споменатият файл (ако има такъв):

Стъпка 3
Напротив, ако искаме да видим всички файлове с конкретно разширение, като .docx, ще изпълним следното:

 find -name "* .docx"
Стъпка 4
Звездичката изброява всички файлове с това разширение

Стъпка 5
Синтаксисът с общо предназначение за командата Find е следният:

 намери [-H] [-L] [-P] [път …] [израз] 
Стъпка 6
Тези параметри са:

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

-ЛСледвайте символните връзки.

-ПТой никога не следва символни връзки и е опцията по подразбиране

Стъпка 7
Опцията [път …] показва местоположението, където трябва да се извърши търсенето в Linux. Параметърът [израз] може да бъде оператори, опции, тестове или действия за изпълнение, виждаме, че по подразбиране командата Find ще игнорира наличните символни връзки, но с -L ще ги търсим за по -пълни резултати.
Има три нива на оптимизация, които можем да изберем, когато стартираме Find, това са:

  • -O1
  • -O2
  • -O3

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

Намерете опции за командаОбщите опции за намиране са:

  • -O1: стойност по подразбиране, това е филтър въз основа на името на посочения файл.
  • -O2: Търсете първо по име на файл, а след това по вид
  • -O3: Изпълнете търсене, което автоматично сортира резултатите въз основа на използването на ресурса
  • -maxdepth X: Търсене в текущата директория и поддиректории на X нива.
  • -iname: Търсете, без да разчитате на текста.
  • -not: Връща само резултатите, които не съвпадат с търсенето
  • -тип f: Търсете само файлове.
  • -тип d: стартирайте търсене в директория

2. Как да намерите файлове по име или разширение с нечувствителни към регистъра команди в Linux

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

 намери -име Solvertic.docx 

Потърсете имена в директорииС този метод можем да открием всички директории с име Solvetic в началната директория (/):

 find / -type d -name Solvetic

Намиране на файлове без разрешения 777Разрешенията 777 (Rwxrwxrwx) с тези разрешения, които нямат ограничения, тоест всеки потребител може да има достъп до тях.
За да видим файловете, които нямат това разрешение, ще изпълним следното:

 намери / -тип f! -перманент 777 

Сега, ако искаме да видим файловете, които имат 777 разрешения, ще изпълним:

 намирам. -тип f -перма 0777 -принт 

Намерете SGID файлове с разрешения 2644Разрешение 2644 са файлове, които имат разрешения за четене и запис, така че за да видим тези файлове, ние ще изпълним:

 2644

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

 find / -perm / u = s

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

 find / -perm / g = s

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

 find / -perm / u = r

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

 find / -perm / a = x

3. Как да намерите файлове с разрешения 777 и chmod 755 в Linux

Етап 1
Това са специални разрешения за четене и запис, за да видите тези файлове, които ще изпълним:

 find / -type d -perm 777 -print -exec chmod 755 {} \;

Стъпка 2
Сега, ако искаме да намерим файловете с разрешения 777 и chmod 644, изпълняваме:

 find / -type f -perm 0777 -print -exec chmod 644 {} \;

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

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

 намирам. -тип f -име "Solvetic.docx" -exec rm -f {} \; 

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

 намирам. -тип f -име "* .docx" -exec rm -f {} \;

Търсете празни файлове или директорииМожем да посочим път, като / tmp, за да намерим празните директории, в този случай изпълняваме следното:

 find / tmp -тип d -празна

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

 find / tmp -тип f -празна

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

 find / home -type f -name ". *"

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

 find / home -user Solutiontic

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

 решаващ метод за намиране / домашна група

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

Етап 1
С командата Find ще бъде възможно да търсите във файловете, които са били използвани в определен период от време, например, за да видите променените файлове от последните 30 дни, които можем да изпълним:

 find / -mtime 30 

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

Стъпка 3
За да видим файловете, променени в диапазон от дни, между 1 и 5 например, ще използваме следния ред:

 намери / -mtime +1 -mtime -5

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

 намери / -cmin -45
Стъпка 5
Това ще изброи файловете от последните 45 минути:

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

 намери / -амин -60 

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

Етап 1
Възможно е да се определи размер на файла в рамките на критериите за търсене, като по този начин да се видят всички файлове, чието тегло е 10 MB, които изпълняваме:

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

Стъпка 2
За да установим диапазон на тегло, ще използваме:

 намери / -размер + 15M -размер -90M

Стъпка 3
Ако по някаква причина искаме да открием и изтрием файл с определен размер, ще използваме следния синтаксис:

 find / -size + 200M -exec rm -rf {} \;
ЗабележкаВерсията на find в Unix има няколко недостатъка, затова трябва да променим нашата команда, за да получим желания резултат, например:

  • На Linux
 намирам. -размер 50M | xargs ls -l
  • В Unix
 намирам. -размер 50M -принтиране0 | xargs -0 ls -l 
На ниво скриптове всички резултати с find са положителни, независимо дали получаваме или не резултати, в linux имаме опцията -print -quit в случай, че не получим резултати.

В Unix версията на Find липсва тази опция и е най -добре да я използвате заедно с grep, за да проверите резултата например.

 прочетете -r a ако намерите. -maxdepth 1 -name "$ a" -print -quit | grep -q. след това ехо "Файл е намерен" иначе ехо "Не е намерен файл" ако

7. Намерете графично файлове в Linux


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

Увеличете

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

wave wave wave wave wave