Příkaz find a jeho možnosti jsou uvedeny v příkladech. Jak hledat soubory v Linuxu pomocí příkazu find Finding linux folders

Začínání s Linuxový server, uživatelé často čelí problému najít potřebné soubory.

Tento tutoriál popisuje použití odpovídajícího příkazu find, který vám umožňuje vyhledávat soubory pomocí různých filtrů a parametrů. Tato příručka navíc stručně popisuje příkaz locate, který lze použít k vyhledání příkazů.

Vyhledávání podle názvu souboru

Samozřejmě, hledání souboru podle názvu je nejviditelnější způsob, jak najít soubor, který potřebujete.

K tomu použijte:

find -name "dotaz"

Tento příkaz rozlišuje velká a malá písmena (to znamená, že se soubory s názvem soubor a Soubor zachází jako se dvěma různými soubory).

Chcete-li vyhledat soubor podle názvu bez ohledu na velikost písmen, zadejte:

find -name "dotaz"

Chcete-li najít soubory, které neodpovídají určitému vzoru, musíte invertovat vyhledávání pomocí příznaků -not nebo metaznaku "!". Vezměte prosím na vědomí, že při použití "!" musíte znaky escape, aby bash shell neinterpretoval "!" ještě před provedením příkazu find.

najít -not -name "query_to_aboid"

nalézt\! -name "query_to_aboid"

Vyhledávání podle typu souboru

Pomocí parametru "-type" můžete určit typ požadovaný soubor. Funguje to takto:

find -type dotaz deskriptoru typu

Zde je seznam běžných deskriptorů, které lze použít k označení typu souboru:

  • F: běžný soubor;
  • d: adresář;
  • l: symbolický odkaz;
  • C: znaková zařízení;
  • b: blokovat zařízení.

Chcete-li například najít všechna znaková zařízení v systému, musíte spustit příkaz:

najít / -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
. . .

Chcete-li najít všechny soubory, které končí na .conf, použijte:

najít / -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 podle času a velikosti

Příkaz find umožňuje filtrovat výsledek na základě velikosti a času poslední úpravy.

velikost souboru

Chcete-li filtrovat soubory podle velikosti, použijte parametr -size.

Na konec hodnoty musíte také přidat příponu, která označuje velikost:

  • C: byte
  • k: kilobajt
  • M: megabajt
  • G: gigabajt
  • b: bloky 512 bajtů

Chcete-li najít soubory o velikosti přesně 50 bajtů, zadejte:

najít / -velikost 50c

Chcete-li najít soubory, které jsou menší než 50 bajtů, použijte symbol „-“ před hodnotou:

najít / -velikost -50c

Chcete-li tedy najít soubory větší než 700 megabajtů, použijte před hodnotou symbol +; příkaz vypadá takto:

najít / -velikost +700M

Vyhledávání podle času

Linux ukládá data o době přístupu, době modifikace a době změny.

  • čas přístupu: čas posledního přístupu k souboru (kdy byl soubor přečten nebo připojen);
  • čas změny: čas poslední změny obsahu souboru;
  • change time: čas poslední změny inodu souboru.

Chcete-li filtrovat soubory podle času, použijte parametry "-atime", "-mtime" a "-ctime".

Význam tento parametr udává, před kolika dny byl soubor změněn. Stejně jako u velikosti souboru můžete použít symboly – a + k úpravě souborů před méně nebo více než n dny.

To znamená, že k nalezení souboru, jehož obsah byl upraven před 1 dnem, použijte:

Chcete-li zobrazit soubory, které byly zpřístupněny před méně než 1 dnem, použijte:

najít / -atime -1

Chcete-li najít soubory, jejichž inody byly změněny před více než třemi dny, zadejte:

najít / -ctime +3

K dispozici jsou také související možnosti, které umožňují zadat minuty místo dnů:

Tím se vrátí soubory, jejichž obsah byl před minutou změněn.

Kromě toho může příkaz find porovnávat soubory a vydávat ty novější:

najít / -novější můj soubor

Vyhledávání podle vlastníka a oprávnění

Pomocí příkazu find můžete vyhledávat soubory podle vlastníka nebo oprávnění k souboru.

K tomu se používají parametry –user, –group a -perm. Chcete-li například najít soubor vlastněný uživatelem s názvem syslog, zadejte:

find / -user syslog

Podobně pro výpis souborů patřících do skupiny stínů použijte:

najít / -skupinový stín

Můžete také vyhledávat soubory se zvláštními oprávněními.

Chcete-li najít soubor s konkrétními oprávněními, použijte:

najít / -trvalá 644

Tento řádek zobrazí všechny soubory s těmito právy.

Chcete-li vypsat všechny soubory, jejichž oprávnění jsou větší nebo rovna zadaným, použijte syntaxi:

najít / -perm -644

Tím se vrátí všechny soubory s dalšími oprávněními (například soubor s oprávněními 744).

Filtrování souborů podle hloubky

Pro spuštění příkladů tato sekce, vytvořte adresářovou strukturu v dočasném adresáři. Měl by se skládat ze tří úrovní adresářů, přičemž na první úrovni by mělo být deset adresářů. Každý adresář (včetně adresáře test) musí obsahovat deset souborů a deset podadresářů.

Chcete-li vytvořit takovou strukturu, spusťte následující příkaz:

CD
mkdir -p ~/test/level1dir(1..10)/level2dir(1..10)/level3dir(1..10)
dotknout se ~/test/(soubor(1..10),level1dir(1..10)/(soubor(1..10),level2dir(1..10)/(soubor(1..10),level3dir( 1..10)/soubor(1..10))))
cd ~/test

Chcete-li zkontrolovat strukturu, kterou jste právě vytvořili, a zkontrolovat, zda bylo vše vytvořeno správně, použijte příkazy ls a cd. Poté se vraťte do testovacího adresáře:

Tato část vám ukáže, jak extrahovat konkrétní adresáře z této struktury. Chcete-li začít, zkuste jednoduchým způsobem vyhledat soubor podle názvu:

find -name file1







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

. . .

Tento příkaz přinesl poměrně objemný výsledek. Předáním tohoto výsledku počítadlu můžete vidět, že na výstup bylo nakonec 1111 souborů.

find -name file1 | wc -l
1111

Tento závěr je samozřejmě ve většině případů příliš zdlouhavý a nepohodlný. Zkuste to zúžit.

Chcete-li to provést, můžete pomocí parametru –maxdepth nastavit maximální hloubku vyhledávání:

find -maxdepth num -name dotaz

Chcete-li najít soubor1 v adresářích level1 a vyšších, zadejte maximální hloubku 2 (1 pro adresář nejvyšší úroveň a 1 pro adresáře úrovně 1).

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

Jak vidíte, tento výsledek má mnohem pohodlnější vzhled.

Kromě toho můžete určit minimální hloubku vyhledávání:

find -mindepth num -name dotaz

To se používá k vyhledání souborů, které jsou na konci větví adresáře:

find -mindepth 4 -name soubor
./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ýsledek bude opět obsahovat obrovské množství souborů (1000).

Maximální a minimální hloubku vyhledávání lze kombinovat, aby se zmenšil rozsah vyhledávání:

najít -mindepth 2 -maxdepth 3 -název souboru
./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
. . .

Provádění a kombinování příkazů

Nástroj find vám umožňuje provést jakýkoli pomocný příkaz na všech nalezených souborech; K tomu slouží volba –exec. Základní syntaxe vypadá takto:

najít parametry_hledání -exec příkaz_a_parametry () \;

Znaky () se používají jako zástupné symboly pro nalezené soubory. Symboly \; se používají k tomu, aby umožnily find určit, kde příkaz končí.

Můžete například najít soubory s oprávněními 644 (jako v předchozí části) a změnit jejich oprávnění na 664:

cd ~/test
najít . -perm 644 -exec chmod 664 ()\;

Poté můžete změnit oprávnění adresáře:

najít . -perm 755 -exec chmod 700 ()\;

Chcete-li zřetězit více výsledků, použijte příkazy -and nebo -or. Příkaz –and se předpokládá, pokud je vynechán.

najít . -name file1 -nebo -name file9

Hledání souborů pomocí příkazu Locate

Příkaz locate je alternativou k hledání. Tento příkaz je obecně rychlejší a dokáže snadno prohledat celý souborový systém.

Tento příkaz můžete nainstalovat pomocí apt-get:

aktualizace sudo apt-get
sudo apt-get install mlocate

Ale proč je příkaz locate rychlejší než find? Jde o to, že umístění závisí na databázi souborů v systému souborů.

Skript cron obvykle aktualizuje tuto databázi jednou denně; ale lze jej aktualizovat i ručně. Spusťte tento příkaz:

Pamatujte: databáze musí být pravidelně aktualizována, aby obsahovala aktuální data; jinak nebude možné najít nedávno přijaté nebo vytvořené soubory.

Chcete-li najít soubory pomocí příkazu locate, jednoduše použijte následující syntaxi:

Výsledek lze také filtrovat.

Chcete-li například vrátit pouze soubory, které obsahují samotný požadavek, namísto vypisování všech souborů obsahujících požadavek v adresářích, které k němu vedou, můžete použít parametr -b (pro vyhledávání pouze základní název, základní název souboru):

Chcete-li, aby příkaz locate vrátil pouze soubory, které stále existují v systému souborů (tj. soubory, které nebyly smazány mezi posledním spuštěním aktualizace a aktuálním voláním k vyhledání), použijte parametr -e:

Chcete-li zobrazit statistiky katalogizované příkazem locate, použijte volbu –S:

lokalizovat -S
Databáze /var/lib/mlocate/mlocate.db:
3 315 adresářů
37 228 souborů
1 504 439 bajtů v názvech souborů
594 851 bajtů použitých k uložení databáze

Výsledek

Příkazy find a locate jsou vynikajícími nástroji pro vyhledávání souborů v operačních systémech podobných UNIX. Každý z těchto nástrojů má své výhody.

Přestože jsou příkazy find a locate velmi výkonné samy o sobě, lze je vylepšit jejich kombinací s jinými příkazy. Jakmile se naučíte používat funkci find a locate, zkuste jejich výsledky filtrovat pomocí příkazů wc, sort a grep.

Štítky: ,

Aktualizováno: 11. 2. 2019 Zveřejněno: 25.07.2016

Nejuniverzálnější a nejfunkčnější vyhledávací příkaz v Linuxu je nalézt. Tento článek je cheat list s příklady jeho použití.

Obecná syntaxe

nalézt<где искать> <опции>

<где искать> — cesta ke kořenovému adresáři, kde má začít hledání. Najděte například /home/user - vyhledejte v příslušném adresáři. Pro aktuální adresář musíte použít tečku ".".

<опции> — soubor pravidel, podle kterých se má vyhledávat.

* ve výchozím nastavení je vyhledávání rekurzivní. Chcete-li hledat v konkrétním adresáři, můžete použít volbu maxdepth.

Popis možností

Volba Popis
-název Hledat podle jména.
-jméno Vyhledávání podle jména bez rozlišení malých a velkých písmen.
-typ

Typ objektu hledání. Možné možnosti:

  • f - soubor;
  • d - adresář;
  • l - odkaz;
  • p - potrubí;
  • s - zásuvka.
-velikost Velikost objektu. Zadává se v blocích po 512 bytech nebo jednoduše v bytech (se znakem „c“).
-mtime Čas úpravy souboru. Uvádí se ve dnech.
-mmin Změna času v minutách.
-Doba Čas posledního přístupu k objektu ve dnech.
-amin Čas posledního hovoru v minutách.
-ctime Naposledy změněno vlastníka nebo práv k objektu ve dnech.
-cmin Poslední změna vlastníka nebo oprávnění během několika minut.
-uživatel Hledat podle vlastníka.
-skupina Podle skupiny.
-trvalá S určitými přístupovými právy.
-hloubka Hledání by nemělo začít od kořenového adresáře, ale od nejhlouběji vnořeného adresáře.
- maximální hloubka Maximální hloubka vyhledávání v katalozích. -maxdepth 0 - hledat pouze v aktuálním adresáři. Ve výchozím nastavení je vyhledávání rekurzivní.
-prořezávat Nezahrnuje uvedené adresáře.
-montáž Nepřesouvejte do jiných systémů souborů.
-regulární výraz Podle jména s regulárním výrazem.
-regextype<тип> Typ regulárního výrazu.
-L Zobrazuje obsah symbolických odkazů (symlinků).
-prázdný Vyhledejte prázdné adresáře.
-vymazat Smazat, co bylo nalezeno.
-ls Výstup jako ls -dgils
-tisk Ukaž, co bylo nalezeno.
- tisk 0 Cesta k nalezeným předmětům.
-exec<команда> {} \; Proveďte příkaz na nalezeném.
-OK Před provedením -exec vydejte výzvu.

Úplnou sadu aktuálních možností lze získat pomocí příkazu člověk najít.

Příklady použití find

Vyhledejte soubor podle názvu

najít / -name "file.txt"

*V v tomto příkladu vyhledá soubor s názvem soubor.txt v celém systému souborů počínaje kořenem / .

Hledání souboru podle části jeho názvu:

find / -name "*.tmp"

* tento příkaz vyhledá všechny složky nebo soubory v kořenovém adresáři /, končící s .tmp

Najděte všechny soubory nebo složky, které začínají sess_ a skončit s CD

najít . -name "sess_*" -a -name "*cd"

* -A: logické AND, -Ó: logické NEBO.

Vyhledávání podle data

1. Vyhledejte soubory, které se změnily před určitým počtem dnů:

najít . -typ f -mtime +60

* tento příkaz vyhledá soubory, které byly změněny před více než 60 dny.

2. Prohledávejte soubory pomocí novější. Tato možnost je dostupná od verze 4.3.3 (můžete ji zobrazit pomocí příkazu najít --verzi).

a) datum změny:

najít . -typ f -newermt "2019-11-02 00:00"

* zobrazí všechny soubory, které se od 11/02/2019 00:00 změnily.

najít . -typ f -newermt 2019-10-31 ! -novější 2019-11-02

* najde všechny soubory, které byly změněny mezi 31. 10. 2019 a 1. 11. 2019 (včetně).

b) datum podání žádosti:

najít . -typ f -novější 2019-10-08

* všechny soubory přístupné od 10.08.2019.

najít . -typ f -novější 2019-10-01 ! -novější 2019-11-01

* všechny soubory zpřístupněné v říjnu.

c) datum vytvoření:

najít . -typ f -novější 2019-09-07

najít . -typ f -novější 2019-09-07 ! -novější "2019-09-09 07:50:00"

* soubory vytvořené od 09.07.2019 00:00:00 do 09.09.2019 07:50

Typ

Hledat pouze soubory v aktuálním adresáři a všech jeho podsložkách:

* F— hledat pouze soubory.

Vyhledávejte podle oprávnění

Hledáme vše vpravo pro čtení a psaní:

najít / -trvalá 0666

Najdeme soubory, ke kterým má přístup pouze vlastník:

najít / -perm 0600

Vyhledejte soubor podle obsahu

najít / -typ f -exec grep -i -H "obsah" () \;

* v tomto příkladu je provedeno rekurzivní vyhledávání pro všechny soubory v adresáři / a zobrazí se seznam těch, které obsahují řetězec obsah.

Seřazeno podle data úpravy

najít /data -type f -printf "%TY-%Tm-%Td %TT %p\n" | seřadit -r

* příkaz najde všechny soubory v adresáři /data, přidá k názvu datum změny a seřadí data podle názvu. Výsledkem je, že soubory půjdou v pořadí, v jakém byly změněny.

najít /home/user/* -type d -exec chmod 2700 () \;

* v tomto příkladu prohledáváme všechny adresáře ( typ d) v adresáři /home/user a nastavit jim práva 2700 .

Plánovaný úklid

tým nalézt pohodlné použití pro automatické mazání zastaralé soubory.

Otevřete úlohu cron pro úpravy:

A přidej:

0 0 * * * /bin/najít /tmp -mtime +14 -exec rm () \;

* v tomto příkladu odstraňujeme všechny soubory a složky z adresáře /tmp, setiny jsou starší 14 dní. Úloha běží každý den v 00:00 .
* Podívejte se na úplnou cestu k nalezení spustitelného souboru pomocí příkazu které nalézají- na různých systémech UNIX může být umístěn na různých místech.

    Najděte soubor podle názvu. Toto nejjednodušší vyhledávání se provádí pomocí nástroje find. Níže uvedený příkaz vyhledá soubor v aktuálním adresáři a všech jeho podadresářích.

    najít -iname "název souboru"

    • Chcete-li v zadaném názvu souboru ignorovat malá a velká písmena, zadejte -name místo -name. Příkaz -name rozlišuje malá a velká písmena.
  1. Začněte hledat v kořenovém adresáři. Chcete-li spustit celosystémové vyhledávání, přidejte do dotazu modifikátor /. V tomto případě příkaz find vyhledá soubor ve všech adresářích, počínaje kořenovým adresářem.

    najít / -name "název souboru"

    • Můžete začít hledat v konkrétním adresáři; Chcete-li to provést, nahraďte / za cestu k adresáři, například /home/max .
    • Může být použito. místo / pro hledání souboru pouze v aktuálním adresáři a jeho podadresářích.
  2. Použijte zástupný symbol.* najít soubory, jejichž název odpovídá části požadavku. Pomocí zástupného znaku * můžete najít soubor celé jméno který je neznámý, nebo najít všechny soubory s konkrétní příponou.

    najít /home/max -iname "*.conf"

    • Tento příkaz najde všechny soubory s příponou .conf ve složce Max (a jejích podsložkách) uživatele.
    • Tento příkaz použijte k vyhledání všech souborů, jejichž názvy odpovídají části dotazu. Pokud máte například v počítači mnoho souborů souvisejících s WikiHow, vyhledejte všechny soubory zadáním „*wiki*“ .
  3. Usnadněte si správu výsledků vyhledávání. Pokud je výsledků vyhledávání příliš mnoho, bude obtížné mezi nimi najít požadovaný soubor. Použijte | takže výsledky vyhledávání jsou filtrovány příkazem less. Usnadníte si tak procházení a filtrování výsledků vyhledávání.

    najít /home/max -iname "*.conf" | méně

    Najděte konkrétní prvky. Pomocí modifikátorů zobrazíte ve výsledcích vyhledávání pouze určité položky. Můžete vyhledávat běžné soubory (f), adresáře (d), symbolické odkazy (l), znaková I/O zařízení (c) a bloková zařízení (b).

    najít / -type f -iname "název souboru"

  4. Filtrujte výsledky vyhledávání podle velikosti souboru. Pokud máte v počítači mnoho souborů s podobnými názvy, ale znáte velikost souboru, který hledáte, filtrujte výsledky vyhledávání podle velikosti souboru.

    najít / -velikost +50M -jméno "název souboru"

    • Tento příkaz najde všechny soubory větší než 50 MB. Pomocí modifikátoru + nebo - označte zvětšení nebo zmenšení velikosti. Pokud není k dispozici žádný modifikátor + nebo -, příkaz najde soubory, jejichž velikost přesně odpovídá zadané velikosti.
    • Výsledky vyhledávání můžete filtrovat podle bajtů (c), kilobajtů (k), megabajtů (M), gigabajtů (G) nebo 512bajtových bloků (b). Upozorňujeme, že zobrazené modifikátory rozlišují malá a velká písmena.
  5. Ke kombinaci vyhledávacích filtrů použijte logické operátory (booleovské operátory). Ke kombinaci různých můžete použít operátory -and , -or , -not vyhledávací dotazy v jedné žádosti.

    najít /travelphotos -type f -velikost +200k -not -name "*2015*"

    • Tento příkaz najde ve složce Travelphotos soubory, které jsou větší než 200 kB a nemají v názvu číslo 2015.

Při práci s Linuxem je nepochybně občas potřeba vyhledávání souborů s určitými vlastnostmi. Těmito vlastnostmi mohou být velikost nebo typ souboru, přístupová práva a další.


Dostupnost příkazů v Linuxu nalézt, hodně pomáhá se s tím vyrovnat vyhledávání souborů podle různých kritérií.


Dnes se podíváme vyhledávání souborů v Linuxu a zadejte možnosti hlavního příkazu nalézt které můžete uplatnit ve své práci.

Formát příkazu nalézt:

naléztcesta-možnosti

Kde cesta- toto je adresář, ve kterém se má hledat. Jako cestu lze zadat následující hodnoty:

. - hledat v aktuálním adresáři;

/ - hledat v kořenovém adresáři;

~ - vyhledávání v domovském adresáři.

Pokud jde o možnosti, existuje mnohem větší seznam, který je nesmírně důležité pečlivě číst (toto v budoucnu hodně pomůže!). Tak, základní možnosti příkazu find:

-název- hledat soubory podle názvu pomocí poskytnuté šablony;

-uživatel- hledat soubory patřící zadanému uživateli;

-skupina- hledat soubory patřící do zadané skupiny;

-trvalá- hledat soubory se zadaným režimem přístupu;

-typ- vyhledávat soubory určitého typu. Existuje také spousta typů:

  • b - speciální blokový soubor;
  • d - adresář;
  • c - soubor speciálních symbolů;
  • f - běžný soubor;
  • l - symbolický odkaz;
  • p - pojmenovaná roura;
  • s - zásuvka.
- velikost n- hledat soubory o velikosti n jednotek;

-mtime -n +n- hledat soubory, jejichž obsah byl změněn před méně než (-) nebo více než (+) dny.

Pojďme se na některé podívat příklady použití příkazu nalézt :

Nejčastěji používanou možností je opce -název, který vyhledává soubory podle názvu.

Příklady s volbou -name :

$ najít /mnt/usb -name "*.mp3" -print

vyhledá všechny soubory (označené znakem *) s příponou .mp3 na USB zařízení připojeném v adresáři /mnt/usb.

$ find ~ -name "test*" -print

zobrazí seznam souborů v domovském adresáři počínaje testem.

Pokud potřebujete najít soubory začínající určitými písmeny (například od a do j), bude to vhodné použít regulární výrazy, které se velmi pohodlně používají:

$ find / -name "*" -print

Výše uvedený příkaz najde všechny soubory v systému začínající písmeny a až j.

Vyhledávejte soubory se specifickými režimy přístupu

Pokud potřebujete najít soubory, které mají specifické režimy přístupu, tato možnost vám pomůže -trvalá, který s tím snadno pomůže.

Vyhledejme například soubory s přístupovým režimem 775 (vlastník a skupina mají plná práva a ostatní uživatelé mají omezení zápisu) umístěné v aktuálním adresáři:

$ najít . -trvalá 775 -tisk

Vyhledávání pomocí nalézt S volbou -perm můžete použít jinou metodu - můžete vložit pomlčku před hodnotu režimu a pak bude hledat soubory, pro které jsou nastaveny všechny zadané bity oprávnění. Navíc jsou zbývající bity v tomto případě ignorovány.

Pojďme například najít soubory, ke kterým mají uživatelé skupiny přístup plný přístup:

$ najít . -trvalá -070 -tisk

Místo pomlčky můžete použít znaménko plus. V tomto případě bude hledat soubory, které mají nastaven alespoň jeden ze zadaných bitů oprávnění. Zbývající bity jsou ignorovány.

Vyhledejte soubory konkrétního uživatele nebo skupiny

Vyhledávání souborů konkrétního uživatele je velmi jednoduché na implementaci. Chcete-li to provést, stačí spustit příkaz:

$ najít / -user admin -print

Výše uvedený příkaz vytvoří vyhledávání souborů v systému patřícímu uživateli admin.

Chcete-li najít soubory patřící do určité skupiny (například správci), spusťte příkaz:

$ najít / -správci skupin -tisk

Chcete-li vyhledat soubory neexistujících uživatelů nebo skupin, můžete použít možnosti -noser A -bez skupiny:

$ najít / -nouser -print

$ find / -nogroup -print

Vyhledejte soubory určitého typu

Jedna z pohodlných funkcí příkazu nalézt, je schopnost vyhledávat soubory určitého typu. Zvažme možnosti použití možnosti -typ:

Vyhledejte symbolické odkazy v adresáři /etc:

$ najít /etc -type l -print

Zobrazí seznam adresářů přítomných v adresáři /mnt/raid

$ najít /mnt/raid -type d -print

Vyhledejte soubory určité velikosti

Volba -velikost umožňuje vyhledávat soubory určité velikosti a po spuštění má následující vzhled:

$ najít . -velikost 2000k -tisk

Výše uvedený příkaz vyhledá a zobrazí soubory o velikosti 2 MB umístěné v aktuálním adresáři. Pokud například potřebujete najít soubory menší než 500 kB, bude příkaz vypadat takto:

$ najít . -velikost -500k -tisk

Pokud potřebujete najít soubory větší než 600 megabajtů, použijte příkaz:

$ najít / -velikost +600M -tisk

Hledání souborů pomocí volby -mtime

Volba -mtime vám umožní najít soubory, které se v průběhu času změnily.

Stáli jsme například před úkolem vyhledat soubory umístěné v adresáři /mnt/raid/upload, které se za posledních 5 dní změnily. Tým nám s tím pomůže:

$ najít /mnt/raid/upload -mtime -5 -print

Pokud potřebujeme opak, například abychom našli soubory, které se týden nezměnily, použijeme příkaz:

$ najít /mnt/raid/upload -7 -tisk

tým nalézt je extrémně pohodlný nástroj Pro vyhledávání souborů a může být také použit pro vyhledávání souborů na discích NFS (síť souborové systémy), ale v tomto případě je potřeba počítat s tím, že hledání něčeho na NFS zabere mnohem více času než na lokálních discích.

V tomto článku jsme se podívali pouze na základní možnosti příkazu find, které vám pomohou ve vaší práci. Používejte to, co je pohodlné, a nestarejte se o maličkosti!

Při práci v jakékoli operační systém Někdy je potřeba použít nástroje k rychlému nalezení konkrétního souboru. To je také relevantní pro Linux, takže vše bude probráno níže možné způsoby hledat soubory v tomto OS. Budou prezentovány jako nástroje správce souborů a příkazy používané v "Terminál".

Pokud potřebujete zadat mnoho parametrů vyhledávání, abyste našli požadovaný soubor, pak příkaz nalézt nenahraditelný. Před zvážením všech jeho variant se vyplatí projít syntaxi a možnosti. Má následující syntaxi:

možnost najít cestu

Kde cesta- toto je adresář, ve kterém bude vyhledávání probíhat. Existují tři hlavní možnosti pro určení cesty:

  • / — hledat v kořenovém a sousedním adresáři;
  • ~ — vyhledávání podle domovského adresáře;
  • ./ — vyhledávání v adresáři, ve kterém se uživatel aktuálně nachází.

Můžete také zadat cestu přímo k samotnému adresáři, kde se soubor údajně nachází.

Možnosti nalézt existuje mnoho a právě díky nim můžete provádět flexibilní nastavení vyhledávání nastavením potřebných proměnných:

  • -název- proveďte vyhledávání pomocí názvu prvku, který hledáte jako základ;
  • -uživatel- vyhledávat soubory, které se týkají konkrétního uživatele;
  • -skupina- vyhledat konkrétní skupinu uživatelů;
  • -trvalá- zobrazit soubory se zadaným režimem přístupu;
  • - velikost n- vyhledávání na základě velikosti objektu;
  • -mtime +n -n- hledat soubory, které se změnily více než ( +n) nebo méně ( -n) před pár dny;
  • -typ- vyhledávat soubory určitého typu.

Existuje také mnoho typů prvků, které hledáte. Zde je jejich seznam:

  • b- blok;
  • F- obyčejný;
  • p- pojmenovaná dýmka;
  • d- katalog;
  • l- odkaz;
  • s- zásuvka;
  • C- symbolický.

Po podrobné analýze syntaxe příkazu a možností nalézt Můžete přejít přímo k názorným příkladům. Vzhledem k velkému množství možností použití příkazu nebudou příklady uvedeny pro všechny proměnné, ale pouze pro ty nejpoužívanější.

Metoda 1: Vyhledávání podle jména (volba -name)

Nejčastěji uživatelé využívají možnost prohledat systém -název, takže tím začneme. Podívejme se na pár příkladů.

Hledat podle přípony

Řekněme, že potřebujete v systému najít soubor s příponou ".xlsx", který se nachází v adresáři "Dropbox". Chcete-li to provést, musíte použít následující příkaz:

najít /home/user/Dropbox -name "*.xlsx" -print

Z jeho syntaxe můžeme říci, že vyhledávání probíhá v adresáři "Dropbox" ("/home/user/Dropbox") a požadovaný objekt musí mít příponu ".xlsx". Hvězdička znamená, že vyhledávání bude provedeno u všech souborů této přípony, aniž by se bral v úvahu jejich název. "-tisk" označuje, že se zobrazí výsledky hledání.

Vyhledávání podle názvu souboru

Chcete například hledat v adresáři "/Domov" soubor s názvem "hrudky", ale jeho rozšíření není známo. V tomto případě je třeba provést následující:

find ~ -name "lumpics*" -print

Jak vidíte, zde použitý symbol je «~» , což znamená, že vyhledávání bude probíhat v domovském adresáři. Po možnosti "-název" je zadáno jméno hledaného souboru ( "hrudky*"). Hvězdička na konci znamená, že vyhledávání bude probíhat pouze podle jména, bez zohlednění přípony.

Hledejte podle prvního písmene jména

Pokud si pamatujete pouze první písmeno názvu souboru, existuje speciální syntaxe příkazu, která vám jej pomůže najít. Chcete například najít soubor, který začíná písmenem od "G" před "l" a nevíte, v jakém adresáři je. Poté musíte spustit následující příkaz:

find / -name "*" -print

Soudě podle symbolu „/“, který je bezprostředně za hlavním příkazem, bude vyhledávání prováděno počínaje kořenovým adresářem, tedy v celém systému. Další, část «*» znamená, že hledané slovo bude začínat určitým písmenem. V našem případě od "G" před "l".

Mimochodem, pokud znáte příponu souboru, pak za symbolem «*» můžete to specifikovat. Například potřebujete najít stejný soubor, ale víte, že má příponu ".odt". Pak můžete použít tento příkaz:

find / -name "*.odt" -print

Metoda 2: Vyhledávání podle režimu přístupu (možnost -perm)

Někdy potřebujete najít objekt, jehož jméno neznáte, ale víte, jaký má režim přístupu. Pak musíte použít možnost "-perm".

Použití je poměrně jednoduché, stačí zadat místo vyhledávání a režim přístupu. Zde je příklad takového příkazu:

najít ~ -perm 775 -tisk

To znamená, že vyhledávání se provádí v domovské sekci a hledané objekty budou mít přístup 775 . Před toto číslo můžete také napsat symbol „-“, nalezené objekty pak budou mít bity oprávnění od nuly do zadané hodnoty.

Metoda 3: Vyhledávání podle uživatele nebo skupiny (možnosti -user a -skupina)

Každý operační systém má uživatele a skupiny. Pokud chcete najít objekt patřící do jedné z těchto kategorií, můžete použít možnost "-uživatel" nebo "-skupina", resp.

Najděte soubor podle jeho uživatelského jména

Musíte například najít v adresáři "Dropbox" soubor "lampy", ale nevíte, jak se to jmenuje, víte jen, že to patří uživateli "uživatel". Poté musíte spustit následující příkaz:

najít /home/user/Dropbox -user user -print

V tomto příkazu jste zadali požadovaný adresář ( /home/user/Dropbox), naznačil, že musíte vyhledat soubor patřící uživateli ( -uživatel) a uvedl, kterému uživateli tento soubor patří ( uživatel).

Hledání souboru podle názvu skupiny

Vyhledávání souboru, který patří do konkrétní skupiny, je stejně snadné – stačí volbu nahradit "-uživatel" na možnost "-skupina" a uveďte název této skupiny:

najít / -groupe guest -print

To znamená, že jste uvedli, že chcete v systému najít soubor, který patří do skupiny "host". Vyhledávání bude probíhat v celém systému, což je označeno symbolem «/» .

Metoda 4: Vyhledejte soubor podle jeho typu (volba -type)

Nalezení prvku určitého typu v Linuxu je poměrně jednoduché, stačí zadat příslušnou volbu ( -typ) a označte typ. Na začátku článku byla uvedena všechna typová označení, která lze pro vyhledávání použít.

Chcete například najít všechny blokové soubory ve svém domovském adresáři. V tomto případě bude váš příkaz vypadat takto:

najít ~ -typ b -tisk

V souladu s tím jste uvedli, že vyhledáváte podle typu souboru, což dokazuje možnost "-typ" a poté určil jeho typ vložením symbolu souboru bloku - "b".

Stejně tak můžete zadáním symbolu do příkazu zobrazit všechny adresáře v požadovaném adresáři "d":

najít /home/user -type d -print

Metoda 5: Vyhledejte soubor podle velikosti (možnost -velikost)

Pokud vše, co o souboru víte, je jeho velikost, pak i to může stačit k jeho nalezení. Chcete-li například v určitém adresáři najít soubor o velikosti 120 MB, proveďte následující:

najít /home/user/Dropbox -velikost 120M -tisk

Jak vidíte, soubor, který potřebujeme, byl nalezen. Pokud však nevíte, v jakém adresáři se nachází, můžete prohledat celý systém zadáním kořenového adresáře na začátku příkazu:

najít / -velikost 120M -tisk

Pokud znáte přibližnou velikost souboru, pak pro tento případ existuje speciální příkaz. Musíte se zaregistrovat "Terminál" totéž, jen před uvedením velikosti souboru vložte znak «-» (pokud potřebujete najít soubory menší než zadaná velikost) popř «+» (pokud je velikost hledaného souboru větší než zadaná velikost). Zde je příklad takového příkazu:

najít /home/user/Dropbox +100M -tisk

Metoda 6: Najděte soubor podle data změny (volba -mtime)

Jsou chvíle, kdy je nejpohodlnější hledat soubor podle data, kdy byl upraven. V Linuxu se to provádí pomocí volby "-mtime". Použití je docela jednoduché, podívejme se na vše na příkladu.

Řekněme ve složce "Snímky" potřebujeme najít objekty, které prošly změnami za posledních 15 dní. Zde je to, co musíte napsat "Terminál":

najít /home/user/Images -mtime -15 -print

Jak vidíte, tato volba zobrazuje nejen soubory, které se během zadaného období změnily, ale také složky. Pracuje také v opačná strana- můžete najít objekty, které byly změněny po zadaném období. Chcete-li to provést, musíte před digitální hodnotu zadat znaménko «+» :

najít /home/user/Images -mtime +10 -print

GUI

Grafické rozhraní výrazně usnadňuje život začátečníkům, kteří právě nainstalovali Linux distribuce. Tato metoda vyhledávání je velmi podobné tomu ve Windows, i když nemůže poskytnout všechny výhody, které nabízí "Terminál". Ale nejdřív. Pojďme se tedy podívat na to, jak hledat soubory v Linuxu pomocí GUI systémy.

Metoda 1: Prohledejte systémovou nabídku

Nyní se podíváme na to, jak vyhledávat soubory prostřednictvím nabídky Linuxové systémy. Provedené akce budou provedeny v distribuci Ubuntu 16.04 LTS, ale pokyny jsou společné pro všechny.