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:
|
-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.
- 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.
-
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.
-
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*“ .
-
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"
-
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.
-
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.
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"
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.
-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.