Príkaz find a jeho možnosti v príkladoch. Ako vyhľadávať súbory v linuxe pomocou príkazu find Find folders linux

Začiatok práce s Linuxový server, používatelia často čelia problému nájsť potrebné súbory.

Tento tutoriál popisuje použitie zodpovedajúceho príkazu find, ktorý vám umožňuje vyhľadávať súbory pomocou rôznych filtrov a možností. Okrem toho táto príručka stručne popisuje príkaz lokalizovať, ktorý možno použiť na vyhľadanie príkazov.

Vyhľadajte podľa názvu súboru

Samozrejme, hľadanie súboru podľa názvu je najzrejmejším spôsobom, ako nájsť ten správny súbor.

Ak to chcete urobiť, použite:

find -name "dopyt"

Tento príkaz rozlišuje malé a veľké písmená (to znamená, že so súbormi s názvom file a File zaobchádza ako s dvoma rôznymi súbormi).

Ak chcete vyhľadať súbor podľa názvu, bez rozlišovania malých a veľkých písmen, zadajte:

nájsť -name "dotaz"

Ak chcete nájsť súbory, ktoré sa nezhodujú s určitým vzorom, invertujte vyhľadávanie pomocou príznakov -not alebo metaznaku „!“. Upozorňujeme, že pri použití "!" znaky musia byť escapované, aby bash shell neinterpretoval znak "!" ešte pred vykonaním príkazu find.

find -not -name "query_to_aboid"

Nájsť\! -name "query_to_aboid"

Hľadajte podľa typu súboru

Pomocou parametra "-type" môžete určiť typ požadovaný súbor. Funguje to takto:

find -type dotaz deskriptora typu

Tu je zoznam bežných deskriptorov, ktoré možno použiť na určenie typu súboru:

  • f: bežný súbor;
  • d: adresár;
  • l: symbolický odkaz;
  • c: znakové zariadenia;
  • b: blokovanie zariadení.

Ak chcete napríklad nájsť všetky znakové zariadenia v systéme, musíte spustiť príkaz:

nájsť / -typ c
/dev/parport0
/dev/snd/seq
/dev/snd/timer
/dev/autofs
/dev/cpu/microcode
/dev/vcsa7
/dev/vcs7
/dev/vcsa6
/dev/vcs6
/dev/vcsa5
/dev/vcs5
/dev/vcsa4
. . .

Ak chcete nájsť všetky súbory, ktoré končia príponou .conf, použite:

nájsť / -type f -name "*.conf"
/var/lib/ucf/cache/:etc:rsyslog.d:50-default.conf
/usr/share/base-files/nsswitch.conf
/usr/share/initramfs-tools/event-driven/upstart-jobs/mountall.conf
/usr/share/rsyslog/50-default.conf
/usr/share/adduser/adduser.conf
/usr/share/davfs2/davfs2.conf
/usr/share/debconf/debconf.conf
/usr/share/doc/apt-utils/examples/apt-ftparchive.conf
. . .

Filtrujte podľa času a veľkosti

Príkaz find vám umožňuje filtrovať výsledok na základe veľkosti a času poslednej úpravy.

veľkosť súboru

Ak chcete filtrovať súbory podľa veľkosti, použite možnosť -size.

Na koniec hodnoty musíte pridať aj príponu, ktorá označuje veľkosť:

  • c: byte
  • k: kilobajt
  • M: megabajt
  • G: gigabajt
  • b: bloky 512 bajtov

Ak chcete nájsť súbory s veľkosťou presne 50 bajtov, zadajte:

nájsť / -veľkosť 50c

Ak chcete nájsť súbory menšie ako 50 bajtov, použite znak „-“ pred hodnotou:

nájsť / -veľkosť -50c

Ak chcete nájsť súbory väčšie ako 700 megabajtov, použite symbol + pred hodnotou; príkaz vyzerá takto:

nájsť / -veľkosť +700M

Hľadajte podľa času

Linux ukladá údaje o čase prístupu, čase úpravy a čase zmeny.

  • čas prístupu: posledný prístup k súboru (keď bol súbor prečítaný alebo pripojený);
  • čas úpravy: posledný čas úpravy obsahu súboru;
  • change time: Posledná zmena inode súboru.

Na filtrovanie súborov podľa času použite možnosti "-atime", "-mtime" a "-ctime".

Význam daný parameter označuje, pred koľkými dňami bol súbor upravený. Rovnako ako v prípade veľkosti súboru môžete použiť znaky - a + na úpravu súborov pred menej alebo viac ako n dňami.

To znamená, že ak chcete nájsť súbor, ktorého obsah bol upravený pred 1 dňom, použite:

Ak chcete zobraziť súbory, ku ktorým sa pristupovalo pred menej ako 1 dňom, použite:

nájsť / -atime -1

Ak chcete nájsť súbory, ktorých inody boli zmenené pred viac ako tromi dňami, zadajte:

nájsť / -ctime +3

Existujú aj súvisiace parametre, ktoré možno použiť na určenie minút namiesto dní:

Týmto sa vrátia súbory, ktorých obsah bol pred minútou zmenený.

Okrem toho môže príkaz find porovnávať súbory a vytvárať výstup novších:

nájsť / -novší môj súbor

Vyhľadávanie podľa vlastníka a oprávnení

Pomocou príkazu find môžete vyhľadávať súbory podľa vlastníka alebo povolení k súboru.

Na tento účel sa používajú možnosti –user, –group a –perm. Ak chcete napríklad nájsť súbor vlastnený používateľom s názvom syslog, zadajte:

nájsť / -user syslog

Podobne na zobrazenie súborov patriacich do skupiny tieňov použite:

nájsť / -skupinový tieň

Môžete tiež vyhľadávať súbory so špeciálnymi oprávneniami.

Ak chcete nájsť súbor so špecifickými povoleniami, použite:

nájsť / -trvalá 644

Tento riadok zobrazí všetky súbory s takýmito povoleniami.

Ak chcete zobraziť zoznam všetkých súborov, ktorých privilégiá sú väčšie alebo rovnaké ako zadané, použite syntax:

nájsť / -perm -644

Týmto sa vrátia všetky súbory s extra privilégiami (napríklad súbor s privilégiami 744).

Filtrovanie súborov podľa hĺbky

Ak chcete spustiť príklady túto sekciu, vytvorte adresárovú štruktúru v dočasnom adresári. Mal by pozostávať z troch úrovní adresárov, pričom na prvej úrovni by malo byť desať adresárov. Každý adresár (vrátane testovacieho adresára) musí obsahovať desať súborov a desať podadresárov.

Ak chcete vytvoriť takúto štruktúru, spustite nasledujúci príkaz:

cd
mkdir -p ~/test/level1dir(1..10)/level2dir(1..10)/level3dir(1..10)
dotknite sa ~/test/(súbor(1..10),úroveň1dir(1..10)/(súbor(1..10),úroveň2dir(1..10)/(súbor(1..10),úroveň3dir( 1..10)/súbor (1..10))))
cd ~/test

Pomocou príkazov ls a cd sa oboznámte s novovytvorenou štruktúrou a skontrolujte, či je všetko správne vytvorené. Potom sa vráťte do testovacieho adresára:

Táto časť vám ukáže, ako extrahovať konkrétne adresáre z tejto štruktúry. Ak chcete začať, skúste jednoduchým spôsobom vyhľadať súbor podľa názvu:

find -name file1







./level1dir7/level2dir8/level3dir6/file1
./level1dir7/level2dir8/level3dir5/file1

. . .

Tento príkaz priniesol pomerne objemný výsledok. Odovzdaním tohto výsledku do počítadla môžete vidieť, že na výstupe bolo nakoniec 1111 súborov.

find -name file1 | wc -l
1111

Samozrejme, vo väčšine prípadov je tento záver príliš objemný a nepohodlný. Skúste to zúžiť.

Ak to chcete urobiť, môžete použiť možnosť --maxdepth na nastavenie maximálnej hĺbky vyhľadávania:

find -maxdepth num -name dotaz

Ak chcete nájsť súbor1 v adresároch level1 a vyššie, zadajte maximálnu hĺbku 2 (1 pre adresár špičková úroveň a 1 pre adresáre úrovne 1).

find -maxdepth 2 -name file1
./level1dir7/file1
./level1dir1/file1
./level1dir3/file1
./level1dir8/file1
./level1dir6/file1
./súbor1
./level1dir2/file1
./level1dir9/file1
./level1dir4/file1
./level1dir5/file1
./level1dir10/file1

Ako vidíte, tento výsledok má oveľa pohodlnejšiu formu.

Okrem toho môžete určiť minimálnu hĺbku vyhľadávania:

find -mindepth num -name dotaz

Používa sa na vyhľadanie súborov, ktoré sú na konci vetiev adresára:

nájsť -mindepth 4 -názov súboru
./level1dir7/level2dir8/level3dir9/file1
./level1dir7/level2dir8/level3dir3/file1
./level1dir7/level2dir8/level3dir4/file1
./level1dir7/level2dir8/level3dir1/file1
./level1dir7/level2dir8/level3dir8/file1
./level1dir7/level2dir8/level3dir7/file1
./level1dir7/level2dir8/level3dir2/file1
. . .

Tento výsledok bude opäť obsahovať obrovské množstvo súborov (1000).

Maximálnu a minimálnu hĺbku vyhľadávania možno kombinovať, aby sa zmenšil rozsah vyhľadávania:

nájsť -mindepth 2 -maxdepth 3 -názov súboru
./level1dir7/level2dir8/file1
./level1dir7/level2dir5/file1
./level1dir7/level2dir7/file1
./level1dir7/level2dir2/file1
./level1dir7/level2dir10/file1
./level1dir7/level2dir6/file1
./level1dir7/level2dir3/file1
./level1dir7/level2dir4/file1
./level1dir7/file1
. . .

Vykonávanie a kombinovanie príkazov

Nástroj find vám umožňuje vykonať akýkoľvek pomocný príkaz na všetkých nájdených súboroch; to sa robí pomocou voľby –exec. Základná syntax vyzerá takto:

nájsť možnosti_hľadania -exec príkaz_a_možnosti () \;

Symboly () sa používajú ako zástupný symbol pre nájdené súbory. Symboly \; sa používajú, aby find mohol určiť, kde príkaz končí.

Môžete napríklad nájsť súbory s oprávneniami 644 (ako v predchádzajúcej časti) a zmeniť ich oprávnenia na 664:

cd ~/test
Nájsť. -perm 644 -exec chmod 664 () \;

Potom môžete zmeniť povolenia adresára:

Nájsť. -perm 755 -exec chmod 700 () \;

Ak chcete prepojiť viacero výsledkov, použite príkazy -and alebo -or. Príkaz -and sa predpokladá, ak je vynechaný.

Nájsť. -name file1 -alebo -name file9

Vyhľadanie súborov pomocou príkazu locate

Alternatívou k nájdeniu je príkaz locate. Tento príkaz je vo všeobecnosti rýchlejší a dokáže jednoducho prehľadať celý súborový systém.

Tento príkaz môžete nainštalovať pomocou apt-get:

aktualizácia sudo apt-get
sudo apt-get install mlocate

Ale prečo je príkaz lokalizovať rýchlejší ako nájsť? Ide o to, že lokalizácia závisí od databázy súborov v súborovom systéme.

Skript cron zvyčajne aktualizuje túto databázu raz denne; ale dá sa aktualizovať aj ručne. Spustite tento príkaz:

Pamätajte: databázu je potrebné pravidelne aktualizovať, aby bola stále aktuálna; v opačnom prípade nebudete môcť nájsť nedávno prijaté alebo vytvorené súbory.

Ak chcete nájsť súbory pomocou príkazu locate, jednoducho použite nasledujúcu syntax:

Výsledok je možné aj filtrovať.

Napríklad, ak chcete vrátiť iba súbory, ktoré obsahujú samotný dotaz, namiesto uvádzania každého súboru, ktorý obsahuje dotaz v adresároch, ktoré k nemu vedú, môžete použiť príznak -b (ak chcete hľadať iba základný názov, základný názov súboru ):

Ak chcete, aby príkaz locate vrátil iba súbory, ktoré ešte existujú v súborovom systéme (t. j. súbory, ktoré neboli vymazané medzi posledným spustením aktualizácie a aktuálnym volaním lokalizácie), použite príznak -e:

Ak chcete zobraziť štatistiky katalogizované príkazom locate, použite voľbu -S:

lokalizovať -S
Databáza /var/lib/mlocate/mlocate.db:
3 315 adresárov
37 228 súborov
1 504 439 bajtov v názvoch súborov
594 851 bajtov použitých na uloženie databázy

Výsledky

Príkazy find a locate sú vynikajúce nástroje na vyhľadávanie súborov v operačných systémoch podobných UNIX. Každý z týchto nástrojov má svoje výhody.

Aj keď sú príkazy nájdi a nájdi sami o sebe veľmi výkonné, možno ich rozšíriť ich kombináciou s inými príkazmi. Keď sa naučíte pracovať s funkciami nájsť a nájsť, skúste ich výsledky filtrovať pomocou príkazov wc, sort a grep.

Značky: ,

Aktualizované: 02.11.2019 Zverejnené: 25.07.2016

Najuniverzálnejší a najfunkčnejší príkaz na vyhľadávanie v systéme Linux je − Nájsť. Tento článok je cheat list s príkladmi jeho použitia.

Všeobecná syntax

Nájsť<где искать> <опции>

<где искать> — cestu ku koreňovému adresáru, odkiaľ začať vyhľadávanie. Napríklad nájdite /home/user - hľadajte v príslušnom adresári. Pre aktuálny adresár použite bodku ".".

<опции> — súbor pravidiel na vyhľadávanie.

* v predvolenom nastavení je vyhľadávanie rekurzívne. Ak chcete vyhľadávať v konkrétnom adresári, môžete použiť túto možnosť maxdepth.

Popis možností

Možnosť Popis
-názov Hľadajte podľa mena.
-volám sa Vyhľadávanie podľa názvu bez rozlišovania malých a veľkých písmen.
-typ

Typ hľadaného objektu. Možné možnosti:

  • f - súbor;
  • d - adresár;
  • l - odkaz;
  • p - potrubie;
  • s je zásuvka.
-veľkosť Veľkosť objektu. Udáva sa v blokoch po 512 bajtoch alebo jednoducho v bajtoch (so znakom „c“).
-mčas Čas úpravy súboru. Určené v dňoch.
-mmin Zmeňte čas v minútach.
-Doba Čas posledného prístupu k objektu v dňoch.
-amín Čas posledného prístupu v minútach.
-ctime Naposledy zmenené vlastníka alebo práv k objektu v dňoch.
-cmin Zmena posledného vlastníka alebo práv v priebehu niekoľkých minút.
-užívateľ Hľadaj podľa vlastníka.
-skupina Podľa skupiny.
-trvalá S určitými prístupovými právami.
-hĺbka Vyhľadávanie by nemalo začať od koreňového adresára, ale od najhlbšie vnoreného adresára.
- maximálna hĺbka Maximálna hĺbka vyhľadávania v adresári. -maxdepth 0 - vyhľadávanie iba v aktuálnom adresári. Štandardne je vyhľadávanie rekurzívne.
- slivka Vylúčte uvedené adresáre.
- namontovať Nepresúvajte do iných súborových systémov.
-regulárny výraz Podľa mena s regulárnym výrazom.
-regextype<тип> Typ regulárneho výrazu.
-L Zobrazuje obsah symbolických odkazov (symlinkov).
-prázdny Vyhľadajte prázdne adresáre.
- zmazať Odstrániť nájdené.
-ls Výstup ako ls -dgils
-tlač Ukážka sa našla.
-tlač 0 Cesta k nájdeným predmetom.
-exec<команда> {} \; Spustite príkaz pri nájdení.
- ok Pred vykonaním -exec vypíšte výzvu.

Úplnú sadu aktuálnych možností možno získať pomocou príkazu človek nájde.

Nájdite príklady použitia

Vyhľadanie súboru podľa názvu

nájsť / -name "file.txt"

* v tento príklad vyhľadá súbor s názvom súbor.txt v celom súborovom systéme, počnúc koreňovým adresárom / .

Vyhľadanie súboru podľa časti jeho názvu:

nájsť / -name "*.tmp"

* tento príkaz vyhľadá všetky priečinky alebo súbory v koreňovom adresári /, končiace v .tmp

Nájdite všetky súbory alebo priečinky, ktoré začínajú sess_ a skončiť s cd

Nájsť. -name "sess_*" -a -name "*cd"

* -a: logické AND, -o: logické ALEBO.

Vyhľadajte podľa dátumu

1. Vyhľadajte súbory, ktoré sa zmenili pred určitým počtom dní:

Nájsť. -typ f -mtime +60

* tento príkaz nájde súbory, ktoré boli zmenené pred viac ako 60 dňami.

2. Vyhľadajte súbory pomocou novšie. Táto možnosť je dostupná od verzie 4.3.3 (môžete ju zobraziť pomocou príkazu nájsť --verziu).

a) dátum zmeny:

Nájsť. -typ f -newermt "2019-11-02 00:00"

* zobrazí všetky súbory, ktoré sa zmenili od 02.11.2019 00:00.

Nájsť. -typ f -newermt 2019-10-31 ! -novšie 2019-11-02

* nájde všetky súbory, ktoré sa zmenili medzi 31.10.2019 a 11.01.2019 (vrátane).

b) dátum podania žiadosti:

Nájsť. -typ f -novšie 2019-10-08

* všetky súbory prístupné od 10.08.2019.

Nájsť. -typ f -novšie 10.10.2019 ! -novšie 2019-11-01

* všetky súbory sprístupnené v októbri.

c) dátum vytvorenia:

Nájsť. -typ f -novšie 2019-09-07

Nájsť. -typ f -novšie 2019-09-07 ! -novšie "2019-09-09 07:50:00"

* súbory vytvorené od 09.07.2019 00:00:00 do 09.09.2019 07:50

Typ

Vyhľadajte iba súbory v aktuálnom adresári a všetkých jeho podpriečinkoch:

* f— hľadať iba súbory.

Vyhľadávajte podľa povolení

Hľadáme všetkých právo čítať a písať:

nájsť / -trvalá 0666

Nájdite súbory, ku ktorým má prístup iba vlastník:

nájsť / -trvalá 0600

Vyhľadávanie súborov podľa obsahu

nájsť / -typ f -exec grep -i -H "obsah" () \;

* v tomto príklade sa vykoná rekurzívne vyhľadávanie všetkých súborov v adresári / a zoznam tých, ktoré obsahujú reťazec obsahu.

Zoradené podľa dátumu úpravy

nájsť /data -type f -printf "%TY-%Tm-%Td %TT %p\n" | triediť-r

* príkaz nájde všetky súbory v adresári /data, pripojí k názvu dátum zmeny a zoradí údaje podľa názvu. Výsledkom je, že súbory pôjdu v poradí, v akom boli zmenené.

nájsť /home/user/* -typ d -exec chmod 2700 () \;

* v tomto príklade hľadáme všetky adresáre ( typ d) v adresári /home/user a nastaviť im práva 2700 .

Plánované čistenie

tím Nájsť vhodné na použitie automatické odstránenie zastarané súbory.

Otvoriť úlohy cron na úpravu:

A pridaj:

0 0 * * * /bin/find /tmp -mtime +14 -exec rm () \;

* v tomto príklade vymažeme všetky súbory a priečinky z adresára /tmp, o stotinu starší 14 dni. Práca prebieha každý deň o 00:00 .
* pomocou príkazu sa pozrieme na úplnú cestu k nájdenému spustiteľnému súboru ktoré nachádzajú- v rôznych systémoch UNIX sa môže nachádzať na rôznych miestach.

    Nájdite súbor podľa názvu. Takéto jednoduché vyhľadávanie sa vykonáva pomocou nástroja find. Príkaz nižšie vyhľadá súbor v aktuálnom adresári a všetkých jeho podadresároch.

    nájsť -iname "názov súboru"

    • Ak chcete ignorovať malé a veľké písmená v zadanom názve súboru, zadajte -name namiesto -name. Príkaz -name rozlišuje malé a veľké písmená.
  1. Začnite hľadať v koreňovom adresári. Ak chcete spustiť celosystémové vyhľadávanie, pridajte do dotazu modifikátor /. V tomto prípade príkaz find vyhľadá súbor vo všetkých adresároch, počnúc od koreňového adresára.

    nájsť / -name "názov súboru"

    • Môžete začať hľadať v konkrétnom adresári; aby ste to urobili, nahraďte / za cestu k adresáru, napríklad /home/max .
    • Môže byť použité. namiesto / hľadať súbor iba v aktuálnom adresári a jeho podadresároch.
  2. Použite zástupný znak .* na nájdenie súborov, ktorých názov sa zhoduje s časťou dotazu. Zástupný znak * možno použiť na vyhľadávanie súboru celé meno ktorý je neznámy, alebo nájsť všetky súbory s konkrétnou príponou.

    nájsť /home/max -iname "*.conf"

    • Tento príkaz nájde všetky súbory .conf v používateľskom priečinku Max (a jeho podpriečinkoch).
    • Tento príkaz použite na vyhľadanie všetkých súborov, ktorých názvy sa zhodujú s časťou dotazu. Napríklad, ak má váš počítač veľa súborov súvisiacich s WikiHow, vyhľadajte všetky súbory zadaním „*wiki*“ .
  3. Uľahčite si správu výsledkov vyhľadávania. Ak je výsledkov vyhľadávania príliš veľa, je ťažké medzi nimi nájsť požadovaný súbor. Použite symbol | takže výsledky vyhľadávania budú filtrované príkazom less. Uľahčí to prezeranie a filtrovanie výsledkov vyhľadávania.

    nájsť /home/max -iname "*.conf" | menej

    Nájdite konkrétne položky. Použite modifikátory na zobrazenie iba určitých položiek vo výsledkoch vyhľadávania. Môžete vyhľadávať bežné súbory (f), adresáre (d), symbolické odkazy (l), znakové I/O zariadenia (c) a blokové zariadenia (b).

    nájsť / -type f -name "názov súboru"

  4. Filtrujte výsledky vyhľadávania podľa veľkosti súboru. Ak má váš počítač veľa súborov s podobnými názvami, no poznáte veľkosť súboru, ktorý hľadáte, filtrujte výsledky vyhľadávania podľa veľkosti súboru.

    nájsť / -veľkosť +50M -meno "názov súboru"

    • Tento príkaz nájde všetky súbory väčšie ako 50 MB. Na označenie zväčšenia alebo zmenšenia veľkosti použite modifikátor + alebo -. Ak neexistuje modifikátor + alebo -, príkaz nájde súbory, ktoré presne zodpovedajú zadanej veľkosti.
    • Výsledky vyhľadávania je možné filtrovať podľa bajtov (c), kilobajtov (k), megabajtov (M), gigabajtov (G) alebo blokov s veľkosťou 512 bajtov (b). Upozorňujeme, že vyššie uvedené modifikátory rozlišujú veľké a malé písmená.
  5. Na kombinovanie vyhľadávacích filtrov použite logické operátory (booleovské operátory). Na kombinovanie rôznych operátorov môžete použiť -and , -alebo , -not vyhľadávané výrazy v jednej žiadosti.

    nájsť /travelphotos -type f -veľkosť +200k -not -name "*2015*"

    • Tento príkaz nájde v priečinku "Travelphotos" súbory, ktoré sú väčšie ako 200 KB a nemajú v názve číslo 2015.

Pri práci s Linuxom je to nepochybne niekedy nevyhnutné vyhľadávanie súborov s určitými vlastnosťami. Týmito charakteristikami môžu byť veľkosť alebo typ súboru, povolenia a ďalšie.


Prítomnosť príkazu v systéme Linux Nájsť veľmi pomáha pri riešení vyhľadávanie súborov podľa rôznych kritérií.


Dnes budeme analyzovať hľadať súbory v linuxe a zadajte možnosti hlavného príkazu Nájsť ktoré môžete uplatniť vo svojej práci.

Formát príkazu Nájsť:

Nájsťcesta-možnosti

kde cesta je adresár na vyhľadávanie. Pre cestu môžete zadať nasledujúce hodnoty:

. - vyhľadávanie v aktuálnom adresári;

/ - vyhľadávanie v koreňovom adresári;

~ - vyhľadávanie v domovskom adresári.

Pokiaľ ide o možnosti, je tu oveľa väčší zoznam, ktorý je mimoriadne potrebné pozorne prečítať (v budúcnosti to veľmi pomôže!). takže, základné možnosti príkazu find:

-názov- vyhľadávanie súborov podľa názvu pomocou danej šablóny;

-užívateľ- hľadať súbory patriace zadanému používateľovi;

-skupina- hľadať súbory patriace do zadanej skupiny;

-trvalá- hľadať súbory so zadaným režimom prístupu;

-typ- vyhľadávanie súborov určitého typu. Stačia aj typy:

  • b - špeciálny blokový súbor;
  • d - adresár;
  • c je súbor so špeciálnymi znakmi;
  • f - bežný súbor;
  • l - symbolický odkaz;
  • p - pomenovaná fajka;
  • s - zásuvka.
-veľkosť- hľadať súbory s veľkosťou n jednotiek;

-mtime -n +n- hľadať súbory, ktorých obsah sa zmenil pred menej ako (-) alebo viac ako (+) dňami.

Zvážte niektoré príklady použitia príkazov Nájsť :

Najčastejšie používanou možnosťou je možnosť -názov, ktorý vyhľadáva súbory podľa názvu.

Príklady s voľbou -name :

$ nájsť /mnt/usb -name "*.mp3" -print

vyhľadá všetky súbory (označené znakom *), ktoré majú príponu .mp3 na zariadení USB pripojenom v adresári /mnt/usb.

$ nájsť ~ -name "test*" -print

zobrazí zoznam súborov v domovskom adresári začínajúci na test.

Ak potrebujete nájsť súbory začínajúce určitými písmenami (napríklad od a do j), potom tu bude vhodné použiť regulárne výrazy, s ktorými je mimoriadne pohodlné pracovať:

$ nájsť / -name "*" -print

Vyššie uvedený príkaz nájde všetky súbory v systéme začínajúce písmenami a až j.

Hľadanie súborov so špecifickými režimami prístupu

Ak potrebujete nájsť súbory, ktoré majú určité režimy prístupu, môžete použiť túto možnosť -trvalá ktorý vám ľahko pomôže.

Hľadajme napríklad súbory s režimom prístupu 775 (vlastník a skupina majú plné práva, ostatní používatelia majú obmedzenia zápisu) umiestnené v aktuálnom adresári:

$ Nájsť. -trvalá 775 -tlač

Vyhľadávanie s Nájsť s voľbou -perm môžete použiť iný spôsob - pred hodnotu režimu môžete vložiť pomlčku a potom sa vyhľadajú súbory, pre ktoré sú nastavené všetky zadané bity povolení. Okrem toho zostávajúce bity sú v tomto prípade ignorované.

Napríklad nájdime súbory, pre ktoré majú používatelia skupinu plný prístup:

$ Nájsť. -trvalá -070 -tlač

Namiesto spojovníka môžete zadať znamienko plus. V tomto prípade vyhľadá súbory, ktoré majú nastavený aspoň jeden zo zadaných bitov povolenia. Ostatné bity sú ignorované.

Vyhľadajte súbory konkrétneho používateľa alebo skupiny

Vyhľadávanie súborov konkrétneho používateľa je pri jeho implementácii mimoriadne jednoduché. Ak to chcete urobiť, stačí spustiť príkaz:

$ nájsť / -user admin -print

Vyššie uvedený príkaz vytvorí vyhľadávanie súborov v systéme, ktorý vlastní používateľ admin.

Ak chcete nájsť súbory patriace do konkrétnej skupiny (napríklad manažérov), spustite príkaz:

$ nájsť / -manažéri skupín -tlač

Ak chcete vyhľadať súbory neexistujúcich používateľov alebo skupín, môžete použiť možnosti -nošer a -noskupina:

$ nájsť / -nouser -print

$ nájsť / -nogroup -print

Vyhľadajte súbory konkrétneho typu

Jedna z pohodlných funkcií príkazu Nájsť, je schopnosť vyhľadávať súbory určitého typu. Zvážte možnosti použitia možnosti -typ:

Hľadanie symbolických odkazov v adresári /etc:

$ nájsť /etc -type l -print

Zobrazenie zoznamu adresárov prítomných v adresári /mnt/raid

$ nájsť /mnt/raid -type d -print

Vyhľadajte súbory určitej veľkosti

Možnosť -veľkosť umožňuje vyhľadávať súbory určitej veľkosti a po spustení vyzerá takto:

$ Nájsť. -veľkosť 2000k -tlač

Vyššie uvedený príkaz nájde a zobrazí 2 megabajtové súbory umiestnené v aktuálnom adresári na obrazovke. Ak napríklad potrebujete nájsť súbory s veľkosťou menšou ako 500 kilobajtov, príkaz bude vyzerať takto:

$ Nájsť. -veľkosť -500k -tlač

Ak potrebujete nájsť súbory väčšie ako 600 megabajtov, použite príkaz:

$ nájsť / -veľkosť +600M -tlač

Vyhľadávanie súborov pomocou voľby -mtime

Možnosť -mčas vám umožní nájsť súbory, ktoré sa časom zmenili.

Stáli sme napríklad pred úlohou vyhľadať súbory nachádzajúce sa v adresári /mnt/raid/upload, ktoré sa za posledných 5 dní zmenili. Tento príkaz nám pomôže:

$ nájsť /mnt/raid/upload -mtime -5 -print

Ak potrebujeme opak, napríklad na nájdenie súborov, ktoré sa týždeň nezmenili, použijeme príkaz:

$ nájsť /mnt/raid/upload -7 -tlač

Tím Nájsť je veľmi šikovný nástroj pre vyhľadávanie súborov a dá sa použiť aj na vyhľadávanie súborov na jednotkách NFS (sieť súborové systémy), no v tomto prípade je potrebné počítať s tým, že hľadanie niečoho na NFS zaberie oveľa viac času ako na lokálnych diskoch.

V tomto článku sme prebrali len základné možnosti príkazu find, ktoré vám pomôžu pri vašej práci. Použite to, čo je pohodlné a nestarajte sa o maličkosti!

Pri práci v akomkoľvek operačný systém niekedy je potrebné použiť nástroje na rýchle nájdenie konkrétneho súboru. To je relevantné aj pre Linux, takže všetko bude diskutované nižšie. možné spôsoby hľadať súbory v tomto OS. Budú prezentované ako nástroje Správca súborov, ako aj príkazy používané v "Terminál".

Ak potrebujete nastaviť viacero parametrov vyhľadávania, aby ste našli požadovaný súbor, potom príkaz Nájsť nenahraditeľný. Pred zvážením všetkých jeho variácií sa oplatí prejsť syntaxou a možnosťami. Má nasledujúcu syntax:

možnosť nájsť cestu

kde cesta je adresár, v ktorom bude vyhľadávanie prebiehať. Existujú tri hlavné možnosti cesty:

  • / - vyhľadávanie v koreňovom adresári a priľahlých adresároch;
  • ~ - vyhľadávanie v domovskom adresári;
  • ./ - vyhľadávanie v adresári, v ktorom sa používateľ práve nachádza.

Môžete tiež zadať cestu priamo k samotnému adresáru, v ktorom sa má súbor nachádzať.

možnosti Nájsť veľa a práve vďaka nim môžete flexibilne konfigurovať vyhľadávanie nastavením potrebných premenných:

  • -názov- vykonať vyhľadávanie na základe názvu hľadaného prvku;
  • -užívateľ- hľadať súbory, ktoré patria konkrétnemu používateľovi;
  • -skupina- vyhľadať špecifickú skupinu používateľov;
  • -trvalá- zobraziť súbory so špecifikovaným režimom prístupu;
  • -veľkosť- vyhľadávanie na základe veľkosti objektu;
  • -mtime +n -n- vyhľadajte súbory, ktoré sa zmenili viac ako ( +n) alebo menej ( -n pred ) dňami;
  • -typ- vyhľadávanie súborov určitého typu.

Existuje tiež veľa typov požadovaných prvkov. Tu je ich zoznam:

  • b- blokovať;
  • f- obyčajný;
  • p- pomenovaná fajka;
  • d- katalóg;
  • l- odkaz;
  • s- zásuvka;
  • c- symbolický.

Po podrobnej analýze syntaxe a možností príkazu Nájsť môžete prejsť priamo na názorné príklady. Kvôli množstvu možností použitia príkazu nebudú uvedené príklady pre všetky premenné, ale len pre tie najpoužívanejšie.

Metóda 1: Vyhľadávanie podľa názvu (možnosť -name)

Používatelia najčastejšie využívajú možnosť prehľadávania systému. -názov, takže tam začneme. Pozrime sa na pár príkladov.

Hľadať podľa rozšírenia

Povedzme, že potrebujete nájsť súbor s príponou ".xlsx", ktorý sa nachádza v adresári schránka. Ak to chcete urobiť, musíte použiť nasledujúci príkaz:

nájsť /home/user/Dropbox -name "*.xlsx" -print

Z jeho syntaxe môžeme povedať, že vyhľadávanie sa vykonáva v adresári schránka ("/home/user/Dropbox") a požadovaný objekt musí mať príponu ".xlsx". Hviezdička znamená, že vyhľadávanie sa vykoná na všetkých súboroch tejto prípony bez ohľadu na ich názov. "-tlač" označuje, že sa zobrazia výsledky vyhľadávania.

Vyhľadajte podľa názvu súboru

Napríklad chcete hľadať v adresári "/Domov" súbor s názvom "hrudky", ale jeho rozšírenie nie je známe. V tomto prípade musíte urobiť nasledovné:

nájsť ~ -name "lumpics*" -print

Ako vidíte, je tu použitý symbol «~» , čo znamená, že vyhľadávanie bude prebiehať v domovskom adresári. Po možnosti "-názov" je zadaný názov hľadaného súboru ( "hrudky*"). Hviezdička na konci znamená, že vyhľadávanie bude prebiehať len podľa mena, bez ohľadu na príponu.

Hľadajte podľa prvého písmena v mene

Ak si pamätáte iba prvé písmeno názvu súboru, existuje špeciálna syntax príkazu, ktorá vám pomôže nájsť ho. Napríklad chcete nájsť súbor, ktorý začína písmenom od "g" predtým "l" a vy neviete, v akom adresári sa nachádza. Potom musíte spustiť nasledujúci príkaz:

nájsť / -name "*" -print

Súdiac podľa znaku „/“, ktorý nasleduje hneď za hlavným príkazom, vyhľadávanie sa uskutoční od koreňového adresára, teda v celom systéme. Ďalej, časť «*» znamená, že hľadané slovo bude začínať určitým písmenom. V našom prípade od "g" predtým "l".

Mimochodom, ak poznáte príponu súboru, potom za symbolom «*» môžete to špecifikovať. Napríklad musíte nájsť rovnaký súbor, ale viete, že má príponu ".odt". Potom môžete použiť tento príkaz:

find / -name "*.odt" -print

Metóda 2: Vyhľadávanie podľa režimu prístupu (možnosť -perm)

Niekedy potrebujete nájsť objekt, ktorého meno nepoznáte, ale viete, aký má prístupový režim. Potom musíte použiť možnosť "-trvalá".

Používanie je celkom jednoduché, stačí zadať miesto vyhľadávania a režim prístupu. Tu je príklad takéhoto príkazu:

nájsť ~ -trvalá 775 -tlač

To znamená, že vyhľadávanie sa vykonáva v domovskom oddiele a vyhľadávané objekty budú mať prístup 775 . Pred toto číslo môžete predpísať aj symbol „-“, potom budú mať nájdené objekty bity povolenia od nuly po zadanú hodnotu.

Metóda 3: Vyhľadávanie podľa používateľa alebo skupiny (možnosti -user a -group)

Každý operačný systém má používateľov a skupiny. Ak chcete nájsť objekt, ktorý patrí do jednej z týchto kategórií, môžete použiť túto možnosť "-user" alebo "-skupina", resp.

Vyhľadanie súboru podľa jeho používateľského mena

Napríklad musíte nájsť v adresári schránka súbor Lampy, ale nevieš ako sa volá, vieš len, že patrí užívateľovi "užívateľ". Potom musíte spustiť nasledujúci príkaz:

nájsť /home/user/Dropbox -user user -print

V tomto príkaze ste zadali požadovaný adresár ( /home/user/Dropbox), znamená, že musíte vyhľadať súbor, ktorý vlastní používateľ ( -užívateľ) a uviedol, ktorému používateľovi tento súbor patrí ( užívateľ).

Vyhľadávanie súboru podľa názvu skupiny

Vyhľadávanie súboru, ktorý patrí do určitej skupiny, je rovnako jednoduché – stačí zmeniť voľbu "-user" podľa možnosti "-skupina" a uveďte názov tejto skupiny:

nájsť / -groupe guest -print

To znamená, že ste uviedli, že chcete v systéme nájsť súbor, ktorý patrí do skupiny "hosť". Vyhľadávanie bude prebiehať v celom systéme, čo je označené symbolom «/» .

Metóda 4: Vyhľadajte súbor podľa jeho typu (možnosť -typ)

Nájdenie určitého prvku v Linuxe určitého typu je pomerne jednoduché, stačí zadať príslušnú možnosť ( -typ) a označte typ. Na začiatku článku boli uvedené všetky typové označenia, ktoré sa dajú použiť na vyhľadávanie.

Napríklad chcete nájsť všetky blokové súbory vo svojom domovskom adresári. V tomto prípade bude váš príkaz vyzerať takto:

nájsť ~ -typ b -tlač

V súlade s tým ste uviedli, že vyhľadávate podľa typu súboru, o čom svedčí aj možnosť "-typ" a potom určil jeho typ vložením symbolu súboru bloku - "b".

Rovnakým spôsobom môžete zobraziť všetky adresáre v požadovanom adresári zadaním symbolu do príkazu "d":

nájsť /home/user -type d -print

Metóda 5: Vyhľadajte súbor podľa veľkosti (možnosť -veľkosť)

Ak všetko, čo o súbore viete, je jeho veľkosť, potom aj to môže stačiť na jeho nájdenie. Napríklad, ak chcete nájsť 120 MB súbor v určitom adresári, postupujte takto:

nájsť /home/user/Dropbox -veľkosť 120M -tlač

Ako vidíte, súbor, ktorý potrebujeme, sa našiel. Ak však neviete, v akom adresári sa nachádza, môžete prehľadať celý systém zadaním koreňového adresára na začiatku príkazu:

nájsť / -veľkosť 120M -tlač

Ak poznáte približnú veľkosť súboru, potom pre tento prípad existuje špeciálny príkaz. Treba sa zapísať "Terminál" to isté, ale pred špecifikovaním veľkosti súboru vložte znamienko «-» (ak chcete nájsť súbory menšie ako zadaná veľkosť) alebo «+» (ak je veľkosť hľadaného súboru väčšia ako zadaná). Tu je príklad takéhoto príkazu:

nájsť /home/user/Dropbox +100M -tlač

Metóda 6: Vyhľadajte súbor podľa dátumu úpravy (možnosť -mtime)

Sú chvíle, kedy je najlepšie vyhľadať súbor podľa dátumu, kedy bol upravený. V systéme Linux sa to robí pomocou možnosti "-mtime". Použitie je celkom jednoduché, pozrime sa na všetko na príklade.

Povedzme v priečinku "Snímky" musíme nájsť objekty, ktoré boli upravené za posledných 15 dní. Tu je to, čo treba napísať "Terminál":

nájsť /home/user/Images -mtime -15 -print

Ako vidíte, táto možnosť zobrazuje nielen súbory, ktoré sa zmenili počas zadaného obdobia, ale aj priečinky. Pracuje tiež v opačná strana- môžete nájsť objekty, ktoré boli zmenené po určenom období. Aby ste to dosiahli, musíte pred digitálnu hodnotu zadať znak «+» :

nájsť /home/user/Images -mtime +10 -print

GUI

Grafické rozhranie značne uľahčuje život začiatočníkom, ktorí práve nainštalovali Linuxová distribúcia. Táto metóda vyhľadávanie je veľmi podobné ako v systéme Windows, aj keď nemusí poskytovať všetky výhody, ktoré ponúka "Terminál". Ale prvé veci. Pozrime sa teda, ako vykonať vyhľadávanie súborov v systéme Linux pomocou GUI systémov.

Metóda 1: Vyhľadajte v systémovej ponuke

Teraz zvážime spôsob vyhľadávania súborov prostredníctvom ponuky Linuxové systémy. Kroky sa vykonajú v distribúcii Ubuntu 16.04 LTS, ale pokyny sú spoločné pre všetkých.