logo

Atrodiet komandu Linux/Unix ar piemēriem

Komanda atrast palīdz mums atrast konkrētu failu direktorijā. To izmanto, lai atrastu failu sarakstu dažādiem nosacījumiem, piemēram, atļaujām, lietotāja īpašumtiesībām, modifikācijām, datumam/laikam, izmēram un citiem.

Unix līdzīgās un citās operētājsistēmās meklēšanas komanda ir komandrindas utilīta, kas atrod failus, pamatojoties uz dažiem lietotāja norādītiem formātiem, un vai nu izdrukā visa atbilstošā objekta ceļa nosaukumu vai, ja tiek pieprasītas citas darbības, īsteno šo darbību visi saskaņotie objekti.

Tas sāk meklēšanu no vēlamās sākuma vietas un pēc tam rekursīvi šķērso hierarhiskas struktūras (parasti koka) direktorijus (mezglus). Atrast komanda var meklēt un šķērsot dažādas failu nodalījumu sistēmas, kas pieder vienai vai vairākām atmiņas ierīcēm sākuma direktorijā.

Meklēšanas formāts satur paraugu saskaņošanai ar faila nosaukumu vai laika diapazonu saskaņošanai ar modifikācijas laiku vai faila piekļuves laiku. Komanda atrast pēc noklusējuma nodrošina visu pašreizējā darba direktorijā esošo failu sarakstu. Tomēr lietotāji var ierobežot meklēšanu līdz vēlamajam maksimālajam līmenim sākuma direktorijā.

Saistītās atrašanās vietas noteikšanas programmas izmanto indeksētu failu datu bāzi, kas iegūta no fine komandas, lai nodrošinātu ātrāku paņēmienu visas failu sistēmas meklēšanai pēc nosaukuma.

Atrast utilītprogramma pēc noklusējuma ir iekļauta lielākajā daļā Linux distribūcijas , tāpēc mums nav jāinstalē nekāda papildu pakotne. Tā ir viena no svarīgākajām un lietotākajām komandām Linux sistēma.

 find 

Abas iespējas nosaka, kā atrašanā jāņem vērā simboliskās saites. Noklusējuma daba nekad nav meklēt simboliskas saites. Karogs, t.i. -L , liks atrast simboliskas saites. Karogs, t.i. -H , tikai izmantos simboliskas saites, vienlaikus turpinot ar komandrindas argumentiem. Karogi ir minēti POSIX standartā meklēšanas komandai. Pamata paplašinājums ir karogs, t.i., -P , lai skaidri atspējotu tālāk norādīto simbolisko saiti.

Vismaz ceļam ir jāparedz izteiksme. Komanda Find var iekšēji interpretēt aizstājējzīmes, un komandas ir rūpīgi jācitē, lai pārvaldītu čaulas globbēšanu.

Izteiksmes komponenti ir izolēti ar komandrindas argumenta robežu, ko parasti norāda kā atstarpes čaulas sintaksē. Tie tiek aplūkoti no kreisās puses uz labo pusi. Tie var ietvert loģiskus komponentus, piemēram, VAI un UN, kā arī predikātus (darbības un filtrus). GNU atradums satur vairākas citas funkcijas, kuras POSIX nemin.

Lai norādītu direktoriju, tiek izmantoti šādi simboli:

(.) : pašreizējam direktorija nosaukumam

(/) : saknes direktorijam

Īsa komandas atrašanas vēsture

Atrast komanda parādījās Unix versijā 5 kā elements Programmētāja darbgalds projektu, un to norādīja Diks Heits ar cpio, kas tika izstrādāti lietošanai kopā.

Sākotnēji meklēšanas komandas GNU ieviešanu noteica Ēriks Dekers . Vēlāk to izstrādāja Deivids Makkenzijs, Tims Vuds , un Džejs Plets . Arī meklēšanas komanda ir pārnesta uz IBM i OS.

terminālis kali linux

Predikāti

Plaši izmantotie primārie ir:

    - nosaukuma modelis:Tas pārbauda, ​​vai faila nosaukums ir tāds pats kā dotajam shell-glob modelim.-tipa tips:Tas pārbauda, ​​vai fails ir norādītā tipa.-drukāt:Tas vienmēr sniedz patieso vērtību. Tas izdrukā pašreizējo faila nosaukumu un jaunu rindiņu uz stdout.-print0:Tas vienmēr sniedz patieso vērtību. Tas izdrukā pašreizējo faila nosaukumu un nulles rakstzīmi stdout. Nav vajadzīgs POSIX.-exec programma [arguments ...];:Tas vienmēr sniedz patieso vērtību. Tas izpilda programmu ar fiksētajiem norādītajiem argumentiem un pašreizējo faila ceļu.-exec programma [arguments ...] { } +:Tas vienmēr sniedz patieso vērtību. Tas izpilda programmu ar fiksētiem dotajiem argumentiem un pēc iespējas vairākiem ceļiem. Gandrīz katrā ieviešanā citi {} gadījumi nozīmē dotā vārda papildu kopijas (aspekts, kas nav vajadzīgs POSIX).-ok programma [arguments ...];:Tas ir tāds pats kā -exec, bet atgriezīsies false vai true, ja programma dod 0.

Atrodiet noklusējuma iestatījumus -print ieviešanai, ja nosacījumi ir patiesi, ja izteiksmē netiek izmantots neviens no -ok, -exec, -print vai -print0.

Operatori

Operatori uzlabo meklēšanas komandu izteiksmes. Tie ir minēti dilstošā prioritātes secībā:

    (termiņš):Šis operators var uzspiest prioritāti.! expr:Ja expr atgriež false, tas atgriež patiesu.
  • expr1 expr2 (vai expr1 -a expr2 : UN. expr2 netiek novērtēts, ja expr1 ir nepatiess.
  • expr1 -o expr2 : VAI. expr2 netiek novērtēts, ja expr1 ir patiess.

Atrast komandas piemēri

Apskatīsim šādus komandas find piemērus:

Atrodiet failus pēc nosaukuma

Mēs varam meklēt visos failos, kas beidzas ar paplašinājumu '.txt'. Lai to izdarītu, izpildiet tālāk norādīto komandu:

 find . -name '*.txt' 

Iepriekš minētajā komandā tiks uzskaitīti visi teksta faili no pašreizējā darba direktorija. Apsveriet tālāk norādīto izvadi:

Linux atrašana

No iepriekš minētās izvades visi faili ar paplašinājumu '.txt' tiek uzskaitīti ar komandu find.

Failu atrašana pēc veida

Parametrs '-type' tiek izmantots, lai norādītu faila tipu.

Daži no failu tipiem ir šādi:

  • f: parastais fails
  • d: direktorijs
  • l: simboliskas saites
  • c: rakstzīmju ierīces
  • b: bloķēt ierīces

Apsveriet tālāk norādīto komandu:

 find . -type d -name '*.bak' 

Iepriekš minētajā komandā tiks uzskaitīti visi direktoriji ar paplašinājumu '.bak'. Apsveriet tālāk norādīto izvadi:

ekta kapoor aktieris
Linux atrašana

No iepriekš minētās izvades komanda 'atrast. -type d -nosaukums '*.bak' parāda visus direktorijus, kas beidzas ar '.bak'.

Atrodiet jaunākus failus

Parametrs '-newer' palīdz meklēt failus, kas ir jaunāki par minēto failu. Apsveriet tālāk norādīto komandu:

 find . -newer msg.txt 

Iepriekš minētā komanda parādīs visus failus, kas ir jaunāki par 'msg.txt' no pašreizējā darba direktorija. Apsveriet tālāk norādīto izvadi:

Linux atrašana

No iepriekš minētās izvades visi parādītie faili ir jaunāki par failu “msg.txt”.

Atrodiet un izdzēsiet failu

Opciju '-delete' izmanto, lai dzēstu konkrētu failu. Izmantojot šo komandu, mums jābūt ļoti uzmanīgiem, jo, ja tā tiek izpildīta, atsaukšanas opcijas nav. Apsveriet tālāk norādīto komandu:

 find . -name Demo.txt -delete 

Iepriekš minētā komanda izdzēsīs failu Demo.txt no pašreizējā darba direktorija. Apsveriet tālāk norādīto izvadi:

Linux atrašana

Atrodiet direktoriju

Opciju 'type -d' izmanto, lai atrastu direktoriju. Apsveriet tālāk norādīto komandu:

 find . type -depth -name Newdirectory 

Iepriekš minētā komanda atradīs 'Newdirectory' atrašanās vietu. Apsveriet tālāk norādīto izvadi:

Linux atrašana

Atrodiet failus pēc modifikācijas laika

Lai atrastu failus pēc modifikācijas, tiek izmantota opcija “-mtime”, kam seko dienu skaits. Dienu skaits var būt pozitīvs vai negatīvs. Negatīvā vērtība tiks izmantota mazāk nekā, piemēram, -1, kas tiek izmantota pēdējā dienā, un līdzīgi +1 atradīs failu pirms vairāk nekā vienas dienas. Apsveriet tālāk norādīto komandu:

 find ./Newdirectory -mtime -1 

Iepriekš minētā komanda atradīs failus, kas ir modificēti pēdējās dienas laikā. Apsveriet tālāk norādīto izvadi:

Linux atrašana

Atrodiet failus pēc atļaujas

Opciju '-perm' izmanto, lai atrastu failus pēc atļaujas. Izpildiet meklēšanas komandu ar opciju '-perm' un nododiet vajadzīgo vērtību. Apsveriet tālāk norādīto komandu:

 find ./ -perm 777 

Iepriekš minētajā komandā tiks uzskaitīti faili no norādītā direktorija, kurus ikviens var lasīt, rakstīt un izpildīt.

Atrodiet un nomainiet failus

Lai atrastu un aizstātu failus, mums ir jāapvieno komanda find ar komandu sed. Lai strādātu ar failiem, izmantojiet opciju '-exec' ar komandu find. Apsveriet tālāk norādīto komandu:

zemsvītras piezīmes
 find ./Newdirectory -type f -exec sed -i 's/find/replace/g' {} ; 

no iepriekš minētās komandas, norādītais gadījums tiks aizstāts. Apsveriet tālāk norādīto izvadi:

Linux atrašana

Atrodiet tekstu vairākos failos

Mēs varam izveidot citu meklēšanas komandas kombināciju ar komandu grep, lai atrastu tekstu no dažādiem failiem. Apsveriet tālāk norādīto komandu:

 find ./Newdirectory -type f -name '*.txt' -exec grep 'demo' {} ; 

Iepriekš minētā komanda atradīs rindiņas, kurās ir teksts 'demo' no visiem teksta failiem direktorijā 'Newdirectory'. Apsveriet tālāk norādīto izvadi:

Linux atrašana

No iepriekš redzamās izvades mēs varam redzēt rindas, kurās ir parādīts teksts “demo”.

Meklēt katrā direktorijā

 $ find / -name file1 -type f -print 

Iepriekš minētā komanda atrod visus direktorijus parastajam failam, kura nosaukums ir file1, un izdrukā to uz ekrāna. Parasti šādā veidā nav ieteicams meklēt failus. Tas var aizņemt pietiekami daudz laika. Tāpēc vislabāk ir pieminēt direktoriju. Dažas operētājsistēmas var pievienot failu sistēmas (dinamiskas), kas nav labvēlīgas komandai atrast. Sarežģītāki failu nosaukumi, kas satur čaulai unikālas rakstzīmes, var būt jāaizver atsevišķās pēdiņās.