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:
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ā:
- 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
- Atrodiet failus pēc veida
- Atrodiet jaunākus failus
- Atrodiet un izdzēsiet failu
- Atrodiet direktoriju
- Atrodiet failus pēc modifikācijas laika
- Atrodiet failus pēc atļaujas
- Atrodiet un nomainiet failus
- Atrodiet tekstu vairākos failos
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:
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
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:
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:
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:
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:
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:
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:
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.