Tento kurz se zaměřuje na to, jak najít soubory na Linuxu pomocí najít a vyhledejte příkaz.

jako správce systému je velmi častým úkolem hledat konkrétní soubor ve vašem systému souborů.

někdy však může být těžké najít soubory v souborovém systému Linux, zejména pokud máte desítky různých uživatelů.

existují dva příkazy, které vám mohou pomoci dosáhnout vašeho cíle : najít a najít.,

v tomto tutoriálu uvidíme, jak tyto příkazy efektivně používat a jak je lze naladit, abychom dosáhli toho, co hledáme.

Obsah

Najít Soubory pomocí příkazu Najít

První způsob, jak najít a najít soubory na Linux hostitele je použít příkaz najít.,

ve výchozím nastavení, najít příkaz je k dispozici na všech rozvodů a má následující syntaxi

$ find <options> <path> <expression>

Rychlý tip : máte potíže se zapamatováním, pokud cesta nebo výraz, je na prvním místě?

nezapomeňte, že pro grEP je výraz cesta, a najít je opak, takže cesta výraz!

Find je docela silný příkaz, protože má mnohem více možností než příkaz locate.

zde jsou všechny možnosti funkce find na Linuxu.,

najděte soubory s find by filename

nejčastějším použitím funkce find je vyhledání souborů vzhledem k jejich názvům souborů.

$ find <path> -name <pattern>

hlavní rozdíl mezi najít a lokalizovat, když jde o hledání souborů je, že najít dns pro názvy souborů, zatímco vyhledejte bude hledat cesty k souboru.

Pokud se například vrátíme k příkladu runlevel, který jsme dříve použili, zde je návod, jak hledat soubory runlevel pomocí příkazu find.,

$ find / -name runlevel*

Co je „2> /dev/null“ část?

přesměroval jsem chybový výstup na /dev/null pomocí výstupního přesměrování, abych se vyhnul chybovým zprávám na konzoli.

Najít soubory pomocí najít podle typu souboru

Jak jsme již diskutovali v našem článku na tvrdé a měkké odkazy, soubory jsou přiřazeny typy souborů a používá se jako způsob, jak se odlišit.,

zde je rekapitulace všech typů souborů používaných v Linuxu.

  • f : standardní soubor
  • d : složku nebo adresář
  • l : symbolický odkaz nebo měkké odkaz
  • b : bloková zařízení (např. pevný disk, například)
  • c : znaková zařízení (sériové porty, zvukové karty)
  • p : pojmenovaný kanál
  • s : zásuvky

Znát všechny ty typy souborů, jste nyní schopni vyhledávat soubory podle typu souboru s příkazem najít.

$ find <path> -type <filetype>

například pokud hledáme všechny symbolické odkazy na hostiteli, vydáme následující příkaz.,

$ find / -type l

parametry lze kombinovat, například pokud Hledám všechny symbolické odkazy, jejichž názvy souborů končí „.služba “ (například pro izolaci všech služeb systemd) bych spustil následující příkaz.

$ find / -type l -name *.service

Najít soubory pomocí vzorce (pro rozšíření)

Podobně jako příkaz locate, budete moci najít soubory na Linuxu pomocí vzoru.

jako připomenutí, vzor je řetězec, který obsahuje globbing znaky (například *, ?, nebo rozsahy).

tato možnost je zvláště, když se snažíte najít soubory dané příponou, například soubory Javascript.

najít soubory na Linuxu pomocí vzoru, spusťte následující příkaz,

$ find <path> -name ".<extension>"
$ find / -name "*.js"

soubory, Soubory na Linuxu od majitele

Někdy, chcete izolovat soubory vytvořené určité uživatele.

při mazání uživatele na vašem hostiteli možná budete chtít odstranit všechny soubory spojené například s tímto uživatelem.,

někdy uživatelé vytvářejí soubory ze svého domovského adresáře a mazání domovského adresáře uživatele nestačí samo o sobě.

v důsledku toho, najít soubory vytvořené určité uživatele na Linux, spusťte následující příkaz,

$ find <path> -user <user>

chcete-li například najít všechny soubory vlastněné „john“ na můj hostitel, já bych spustit následující příkaz.

$ find / -user john

co když chci smazat všechny soubory ve vlastnictví john s jednoduchý příkaz?,

lze jej snadno dosáhnout pomocí vlajky odstranit.

$ find / -user john -delete

Najít soubory na Linuxu pomocí oprávnění

Pomocí příkazu najít můžete také najít a najít soubory, které mají určité oprávnění na vašem hostiteli.

$ find <path> -perm <permissions>

jako připomenutí, zde je způsob, jak oprávnění k souborům fungují na Linuxu.

Chcete-li najít všechny soubory, které mají plná oprávnění (777 vzhledem k binární notaci), můžete spustit následující příkaz.,

$ find / -perm 777

může to být docela užitečné, pokud z bezpečnostních důvodů chcete zkontrolovat, zda nejsou v systému nakonfigurovány žádné soubory s plnými oprávněními.

Najít soubory s najít podle velikosti

Další velmi šikovný způsob, jak najít a najít soubory na Linuxu je najít příkaz najít s velikostí možnost.

možnost velikost umožňuje vyhledávat soubory, které jsou přesně velikost, kterou určujete, větší než konkrétní velikost nebo nižší než konkrétní velikost.,

Chcete-li hledat soubory podle velikosti, použijte následující příkaz

$ find <path> -size <size>

velikost je definována následující předpony :

  • c: bajty
  • b: 512-byte bloků
  • k: Kb
  • M: Mb
  • G: Gb

můžete zadat „+“ pokud hledáte pro soubory větší než velikost stanovená.,

například, s cílem najít soubory větší než 1 GB místa na vašem systému, spusťte následující příkaz,

$ find / -size +1G

najít soubory nižší než 10 MBs na vašem systému, spusťte následující příkaz,

$ find / -size -10M

a Konečně, chcete-li vyhledat soubory, které jsou přesně na rozměry uvedené v dotaz, neměli byste přidat nějaké plus nebo mínus předpony k jednotce.

$ find / -size 1024k

právě definovaný příkaz najde všechny soubory, které mají přesně velikost 1024 Kbs na vašem hostiteli.,

najděte soubory na Linuxu podle data modifikace

pomocí nálezu můžete také najít soubory dané datum modifikace, nedávné nebo ne.

Tento příkaz je velmi užitečný a správci systému jej často používají k nalezení souborů nebo adresářů, které byly nedávno změněny.

Chcete-li vyhledat soubory pomocí najít podle data změny, spusťte následující příkaz,

$ find <path> -mtime <time>

Kde čas představuje soubory modifikované 24*<> hodiny.

v důsledku toho je čas vyjádřen ve dnech.,

Podobně jako velikost možnost, můžete se připojit na „plus“ nebo „minus“ provozovatele, aby čas podívat se na soubory modifikované více než <> dny, nebo méně než <> dny.

Chcete-li například hledat soubory upravené přesně Před 3 hodinami, spusťte následující příkaz.,

$ find / -mtime 3

najít soubory upraven více než jeden týden, měli byste spustit následující příkaz,

$ find / -mtime +7

najít soubory modifikované méně než dva dny, budete spusťte následující příkaz,

$ find / -mtime -2

Najít soubory s dynamickou hloubku

Jak jste si pravděpodobně všimli, od začátku tohoto tutoriálu, dáváme příklady souborů, hledání začíná od kořenového adresáře.

v důsledku toho jsou všechny složky procházeny rekurzivně.,

můžeme však omezit počet adresářů rekurzivně cestoval z jednoho adresáře, to se nazývá hloubka.

omezit vyhledávání souborů na danou hloubku, spustit následující dotaz

$ find <path> -maxdepth <depth>

Jako příklad, tady je to, jak můžete omezit vyhledávání souborů do aktuálního adresáře, bez dětí adresáře se procházet.

$ find / -maxdepth 1

můžete samozřejmě kombinovat tento příkaz se jménem vlajky s cílem hledat soubory s daným jménem v aktuálním adresáři.,

$ find . -maxdepth 1 -name *.tar

Řetězení najít s -exec

V některých případech, můžete najít užitečné řetězce příkazu find s exec.

možnost exec lze použít k řetězu více příkazů dohromady : přičemž výsledek prvního jako vstup druhého.,

řekněme například, že chcete najít všechny soubory modifikované méně než jednu minutu před

$ find /home/user -mmin -1./file1

Nyní řekněme, že chcete odstranit všechny soubory, které byly změněny méně než před minutou.

pomocí této syntaxe můžete řetězit příkaz find s volbou-exec.

$ find /home/user -mmin -1 -exec echo rm -f '{}' \;

Jsme zřejmě první „echo“ výsledky jak chceme, aby se ujistil, že jsme vymazání správné soubory.,

když jste připraveni tyto soubory odstranit, jednoduše odstraňte příkaz echo.

$ find /home/user -mmin -1 -exec rm -f '{}' \;

najděte soubory v Linuxu pomocí příkazu Locate

dalším skvělým způsobem, jak najít a najít soubory v Linuxu, je použít příkaz locate.

Předpoklady

vyhledejte příkaz není k dispozici na vašem systému, ujistěte se, že číst další části, aby si vyhledat běží na vašem systému.,

a-instalace vyhledejte v distribucích založených na apt a RPM

Chcete-li nainstalovat lokalizovat, budete potřebovat oprávnění sudo na vašem hostiteli Linuxu.

Chcete-li zkontrolovat, zda je na vašem hostiteli nainstalován locate, spusťte příkaz locate v příkazovém řádku.,

$ locate

Pokud najít je nainstalován na vašem počítači, bude očekávat, že výraz za předpokladu,

Pokud najít je není nainstalován na vašem počítači, chybová zpráva se zobrazí,

instalovat lokalizaci na Ubuntu 18.04 a 10 Debian, spusťte následující příkaz.,

$ sudo apt-get install mlocate

podobně, pokud jste na distribuci CentOS nebo Fedora založené, spusťte následující příkaz nainstalovat lokalizovat.

$ sudo yum install mlocate

b – Aktualizace mlocate databáze

vyhledejte funkce pracuje s lokální databázi uložené na vašem souborový systém, který ukládá každé názvem svého hostitele.

při provádění příkazu locate vyhledejte vyhledá do databáze připravené updatedb pro soubor, který hledáte.

pravidelně, cron job aktualizuje mlocate.db Soubor pro vás hledat nejnovější položky.,

databáze se nachází na adrese / var/lib/mlocate / mlocate.db ve výchozím nastavení a konfigurační soubor updatedb je uložen na / etc / updatedb.conf.

prozatím můžete ponechat výchozí možnosti a spustit jednoduchý příkaz updatedb pro obnovení databáze.

$ sudo updatedb

Vyhledejte soubory dáno jméno vzor

nejvíce základní způsob, jak najít soubory na Linuxu je poskytnout vzor pro příkaz locate.,

ve výchozím nastavení, syntaxe vyhledejte příkaz je následující.

$ locate ... ...

Pokud hledáte pro daný konfigurační soubor ve vašem systému, snadný způsob, jak najít to, je poskytnout jeho kompletní název souboru pro příkaz locate.

$ locate updatedb.conf

Jak můžete vidět, příkaz locate se vrací kompletní cesty k souboru, který jsem hledal.,

vyhledejte soubory v omezených adresářích

někdy nemusíte mít přístup k některým adresářům ve vašem systému.

v důsledku toho nebudete moci najít soubory, které se do něj nacházejí.

Vezměme si příklad zakázané složky obsahující soubor s názvem „omezený soubor“.

vyhledejte soubory, které se nacházejí na omezeném adresářů, budete muset spustit příkaz locate s sudo oprávněními.,

$ sudo locate restricted-file

Vyhledejte soubory pomocí vzorce

použijte příkaz locate, můžete poskytnout „vzory“ v podobě globbing znaky.

Globbing znaky, také volal zástupné znaky, jsou znaky používané tak, aby odpovídaly jeden nebo více položek se zjednodušeným výrazem.

nejoblíbenější je“*“, který bude odpovídat jakémukoli znaku včetně žádného.

zde je rekapitulace tabulky pro globbing znaky a jejich funkce.,6934f1″>

devdevco, matches one character given in the bracket ab aab, bab cab matches one character from the (locale-dependent) range given in the bracket runlevel runlevel1, runlevel2, runlevel6 runlevels, runlevelo

As an example, here’s a way to locate all text files on your system.,

$ locate *.txt

Vyhledejte soubory pomocí regulárních výrazů

Jak je uvedeno v úředním man stránce najít, vyhledejte příkaz přijímá vzor jako vstupní.

znamená to, že jste schopni poskytnout příkaz lokalizovat regulární výraz.

Chcete –li najít a najít soubory dané regex, použijte volbu-regex pro příkaz lokalizovat.,

$ locate --regex <regex>

například pro izolaci všech souborů začínajících runlevelem následovaným číslem spustíte následující příkaz.

$ locate --regex runlevel+

Pokud používáte regulární výrazy, je tam jeden důležitý bod, který byste měli být vědomi při vyhledávání souborů.

příkaz locate hledá cesty k souborům v místní databázi.,

při vyhledávání souborů byste si proto měli být vědomi toho, že váš regulární výraz musí odpovídat cestě k souboru a nikoli samotnému názvu souboru.

například pokud Hledám soubory začínající „run“, žádné výsledky nebudou vráceny, protože cesta k souboru začíná“/usr“.

Vyhledejte soubory pomocí malá a velká písmena možnost

Při hledání souborů na vašem souborovém systému, nemusí být jistý, jak daný soubor byl pojmenován.,

bylo napsáno velkými písmeny nebo malými písmeny? Obsahuje vůbec nějaká velká písmena?

Chcete-li najít a najít soubory pomocí možnosti necitlivé na velká písmena, připojte volbu-i k příkazu locate.,

$ locate -i <file_pattern>

Vyhledávání souborů podle obsahu pomocí grep

V některých případech, možná vás bude zajímat při hledání souborů, které jsou odpovídající konkrétní slovo, věta, která se nachází UVNITŘ souboru.

k tomu může dojít například v případě, že se snažíte najít soubor obsahující konkrétní události protokolu.,

první způsob, jak hledat pro soubory odpovídající konkrétní slovo je pomocí příkaz grep

$ grep -r <pattern> <path>

Poznámka : nezapomeňte na „-r“ volba, pokud hledáte soubory přes celé adresáře.

například., pokud hledáte všechny soubory s „chyba“ v jejich obsahu, který se nachází ve vašem domovském adresáři, zadejte

$ grep -r error /home/user

V některých případech, možná budete chtít najít soubory daný regulární výraz.

Chcete-li najít soubory pomocí regulárního výrazu, použijte možnost „-E“.,

$ grep -r -E <expression> <path>

řekněme například, že chcete najít soubor, který odpovídá “ abc “ vzor v jednom z vašich souborů, zadejte

$ grep -r -E "abc.*" --color /home/user

Poznámka : barva se používá pro zdůraznění odpovídá pomocí příkaz grep.,

Najít soubory pomocí které

Další skvělý způsob, jak najít soubory na Linuxu je použití, který příkaz.

příkaz which se používá k vyhledání souborů spojených s konkrétním příkazem.

to se může stát velmi užitečné, když nevíte, kde jste uložili binárky pro příkaz nebo pokud potřebujete najít příkaz, abyste jej mohli přidat do cesty.,

$ which <command>

například, s cílem hledat soubory spojené „ls“ příkaz, zadejte

$ which ls/usr/bin/ls

Jak můžete vidět, budete mít kompletní cestu k souboru.

vyhledejte binární soubory pomocí whereis

podobně je zcela možné vyhledávat soubory pomocí příkazu whereis.

„kde je ted“ příkaz může být viděn jako nadmnožina „, který“ příkaz : „kde je ted“ poskytuje informace o názvu příkazu, umístění souborů, stejně jako umístění manuálu.,

Chcete-li provést whereis, jednoduše zadejte „whereis“ a přidejte název příkazu.

$ whereis lsls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

docela šikovný!

závěr

v dnešním tutoriálu jste se dozvěděli, jak můžete najít a najít soubory v Linuxu pomocí dvou důležitých příkazů : najít a najít.

i když byla volba prezentována individuálně, měli byste si uvědomit, že je lze kombinovat, abyste mohli určit ještě více souborů, které hledáte.

jako vždy, pokud máte zájem o správu systému Linux, máme na našich webových stránkách kompletní sekci věnovanou Linuxu.,

As always, here is a short video on the subject in case you prefer Youtube videos.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *