find - un utilitar pentru căutarea fișierelor după nume și alte proprietăți, utilizat în sistemele de operare asemănătoare UNIX . Poate căuta unul sau mai multe directoare folosind criteriile specificate de utilizator . Returnează toate fișierele din directorul de lucru în mod implicit . În plus, permite utilizatorului să aplice anumite acțiuni tuturor fișierelor găsite. Sunt acceptate și expresiile regulate . Pentru a căuta fișiere după conținut, utilizați utilitarul grep . findfind
Găsiți toate fișierele din directoarele curente și secundare care încep cu .
Vă rugăm să rețineți: în ceea ce privește Unix , totul, inclusiv directoarele, este un fișier .
găsi. -numele „meu*”Pentru a căuta numai după numele fișierelor, trebuie să utilizați o opțiune suplimentară-type f
găsi. -nume „meu*” -tip fGăsiți toate fișierele din directoarele rădăcină și copil care încep cu .
Căutarea în directorul rădăcină este echivalentă cu căutarea în întregul computer.
găsi / -nume „meu*”Căutarea fișierelor în directoare /usr/local/manși/opt/local/man
găsiți /usr/local/man /opt/local/man -name „my*”Găsiți toate fișierele din directoarele curente și secundare care încep cu my sau qu .
Rețineți că în mod implicit, toate argumentele sunt conectate folosind logica și (opțiunea -a, din engleză și ). Dacă trebuie să combinați mai multe argumente cu un logic sau - utilizați opțiunea -o, din engleză. sau .
găsi. \( -nume „meu*” -o -nume „qu*” \) -printGăsiți toate fișierele din directoarele curente și secundare a căror extensie se potrivește cu cele enumerate.
Această căutare se efectuează folosind expresii regulate .
găsi. -type f -regex „.*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)"Exemplul anterior poate fi scris și folosind expresii regulate
găsi. -type f -regex „\(my\|qu\).*”Opțiunea -exec execută comanda care o urmează și înlocuiește {}fișierul curent cu acesta. Găsiți toate directoarele sub directorul specificat și schimbați-le permisiunile cu comanda chmod :
find /path -type d -exec chmod 0755 {} \;Opțiunea -exec este de aproximativ 10 ori mai lentă decât redirecționarea ieșirii prin xargs , așa că este recomandat să scrieți acest cod astfel:
găsi /cale -tip d | xargs chmod 0755Cu toate acestea, directoarele cu nume care conțin spații nu vor fi procesate prin metoda de redirecționare xargs, așa că ar trebui să utilizați prima opțiune, completată:
find /path -type d -exec chmod 0755 "{}" \;Sau utilizați opțiunea -print0și -0vă permiteți să procesați argumente care conțin spații și ghilimele:
găsi /cale -tip d -print0 | xargs -0 chmod 0755Căutați toate fișierele php.ini din directorul curent și înlocuiți textul din fiecare fișier găsit folosind comanda sed .
găsi. -name 'php.ini' -exec sed -i 's/log_errors = Off/log_errors = On/g' "{}" \;Căutare complexă în mai multe tipuri de fișiere și înlocuiri de text în fiecare dintre ele, din directorul curent și mai jos.
găsi. -regex ".*\.\(php\|js\|css\)" -exec sed -i 's/\/bitrix\/templates\//\/local\/templates\//g' "{} " \;Găsiți și enumerați fișierele din întregul sistem de fișiere care au fost modificate în ultimul minut:
găsi / -mmin -1 -printGăsiți și enumerați fișierele din întregul sistem de fișiere care au fost modificate cu mai mult de 31 de zile în urmă:
găsi / -mtime +31 -printGăsiți și enumerați fișierele din întregul sistem de fișiere a căror dimensiune este mai mare de 100 MB:
găsi / -dimensiune +100M -printÎn acest exemplu, căutarea este efectuată pe fișiere deținute de un utilizator numit ilya
găsi. -utilizator ilyaAdâncimea de căutare este relativă la directorul specificat în argumentul comenzii.
Începe căutarea în dosar /var/www, dar nu mai adânc /var/www/*/*/*/*.
găsiți /var/www -maxdepth 4 -name 'restore.php'Caută fișiere în directoarele specificate.
găsiți /var/spool/postfix/ { deferred,active,maildrop,incoming } / -type fCaută fișiere php în directorul curent, excluzând index.php
găsi. -nume „*.php” ! -nume „index.php”Șterge toate fișierele restore.phpdin directorul curent până la 4 niveluri de imbricare în raport cu argumentul liniei de comandă
Începe căutarea în folder /var/www, dar nu mai adânc /var/www/*/*/*/*și șterge toate fișierele restore.phpgăsite.
găsiți /var/www -maxdepth 4 -name 'restore.php' -exec rm -r {} \;Dacă apare o eroare în timpul căutării (de exemplu, nu există acces de citire din director), atunci rezultatul comenzii devine mai puțin informativ. Redirecționați ieșirea STDERR către /dev/null .
find / -name 'secret.keys' -print 2 >/dev/nullDe asemenea, puteți utiliza una dintre următoarele opțiuni:
find / -name „numele fișierului de căutat” |& grep -v „Permisiune refuzată” find / -name „numele fișierului pe care îl căutați” |& grep -v „Permisiune refuzată”
Comenzi Unix | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|
MS-DOS și Windows | Comenzi comune|
---|---|
| |
Vezi și: Lista comenzilor DOS Lista comenzilor sistemului de operare Microsoft |