Jak používat příkaz find. Jak najít soubory v Linuxu pomocí příkazu find

Pravděpodobně jste obeznámeni s následujícím problémem: Existuje soubor a vy si nepamatujete, kam jste jej vložili.

V tomto případě přijde vhod příkaz find. Jak to mohu použít? Tento nástroj samozřejmě obsahuje velkou manuálovou stránku, ale pokryjeme některé typické případy. Procházejte strom adresářů počínaje aktuálním a najděte soubor lostfile.txt:

Pokud se díváte do velkého stromu adresářů, příkaz find může být docela pomalý. Někdy je výhodnější použít příkaz locate. Nehledá soubor přímo v systému souborů, ale prohledává jeho databázi. Tato metoda je mnohem rychlejší, ale databáze může být zastaralá. V některých distribucích je tato databáze upravována každou noc. Příkaz updatedb můžete čas od času spustit ručně a upravit jej. vyhledejte hledané podřetězce:

Počet povolených pravopisných chyb závisí na délce názvu souboru, lze jej však nastavit pomocí volby -t. Chcete -li vyřešit maximálně 2 chyby a použít zástupný znak, zadejte:

Přehled stromu adresářů

Někdy je nutné získat přehled o adresářovém stromu. Například jste obdrželi nový disk CD-ROM a chtěli byste vědět, co na něm je. Můžete použít ls - R. Osobně dávám přednost čitelnosti jednoho z následujících. následujícími způsoby... Strom (sunsite.unc.edu/pub/Linux/utils/file/tree-1.2.tgz) zobrazuje strom adresářů jako diagram.

Nebo použijte starý dobrý nález. Ve verzi GNU find, která se obvykle dodává s Linuxem, je možné změnit výstupní formát tak, aby zobrazoval například název souboru a jeho velikost:

K tomuto druhu věcí můžete použít trochu perl rutiny, která pracuje s příkazem ls. Lze jej stáhnout zde: lsperl.gz. K dispozici je mnoho dalších nástrojů pro procházení stromů adresářů, ale ve většině případů jsou dostačující.

Hledejte soubory podle obsahu (hledejte textové řetězce v souborech).

Standardní nástroje pro hledání textových řetězců v souborech jsou grep / egrep pro vyhledávání regulárních výrazů a fgrep pro doslovné řetězce. Chcete -li vyhledat výraz ve všech souborech v aktuálním adresáři, jednoduše zadejte:

Pokud je pro vás obtížné si tyto dlouhé příkazy zapamatovat, použijte malý skript, který lze stáhnout zde: grepfind.gz. Skript také odstraní netisknutelné znaky z vyhledávacího řetězce, abyste v důsledku hledání egrep omylem neskončili s binárkou.

Vysoce zajímavý program hledání - souhlas. Dohoda funguje v podstatě jako egrep, ale umožňuje vyhledávání s překlepy. Chcete -li vyhledat výraz a vyřešit maximálně 2 pravopisné chyby, zadejte:

Poté můžete řetězec vyhledat ve všech souborech, které byly předem indexovány

letmý pohled -i -2 "osvobození z hledání"

letmý pohled má také překlep (jako souhlas) a -2 znamená, že jsou povoleny dvě chyby. letmý pohled je k dispozici na

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

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

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

    najít / -název "název_souboru"

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

    find / home / max -iname "* .conf"

    • Tento příkaz najde všechny soubory .conf ve složce uživatele Max (a jejích podsložkách).
    • Tento příkaz použijte k vyhledání všech souborů, které 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 existuje příliš mnoho výsledků vyhledávání, je obtížné je najít požadovaný soubor... Použijte symbol | filtrovat výsledky vyhledávání s menším počtem. Díky tomu bude snazší zobrazit a filtrovat výsledky vyhledávání.

    find / home / max -iname "* .conf" | méně

    Najděte konkrétní položky. Pomocí modifikátorů zobrazujte ve výsledcích vyhledávání pouze konkrétní 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).

    find / -type f -iname "filename"

  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 hledaného souboru, filtrujte výsledky hledání podle velikosti souboru.

    find / -size + 50M -iname "filename"

    • 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 neexistuje žádný modifikátor + nebo -, příkaz najde soubory, které mají přesně stejnou velikost jako zadaná velikost.
    • Výsledky hledání lze filtrovat podle bajtů (c), kilobajtů (k), megabajtů (M), gigabajtů (G) nebo bloků (b) o velikosti 512 bajtů. Uvedené modifikátory rozlišují velká a malá písmena.
  5. Použití logické operátory(logické operátory) pro kombinování vyhledávacích filtrů. K kombinování různých můžete použít operátory -and, -nebo -not vyhledávací dotazy v jedné žádosti.

    find / travelphotos -type f -size + 200k -not -iname " * 2015 *"

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

Toto je výchozí uvítací stránka používaná k testování správného provozu serveru Apache2 po instalaci na systémy Ubuntu. Je založen na ekvivalentní stránce v Debianu, ze které je odvozen obal Ubuntu Apache. Pokud si můžete přečíst tuto stránku, znamená to, že server HTTP Apache nainstalovaný na tomto webu funguje správně. Měl by jsi nahraďte tento soubor(umístěné na /var/www/html/index.html), než budete pokračovat v provozu svého serveru HTTP.

Pokud jste běžným uživatelem těchto webových stránek a nevíte, o čem tato stránka je, pravděpodobně to znamená, že web je momentálně nedostupný z důvodu údržby. Pokud problém přetrvává, obraťte se na správce webu.

Přehled konfigurace

Výchozí konfigurace Apache2 pro Ubuntu se liší od výchozí výchozí konfigurace a je rozdělena do několika souborů optimalizovaných pro interakci s nástroji Ubuntu. Konfigurační systém je plně zdokumentováno v /usr/share/doc/apache2/README.Debian.gz... Úplnou dokumentaci naleznete v tomto dokumentu. Dokumentaci k samotnému webovému serveru lze nalézt v manuálu, pokud byl na tento server nainstalován balíček apache2-doc.

Rozložení konfigurace pro instalaci webového serveru Apache2 na systémy Ubuntu je následující:

/ etc / apache2 / | - apache2.conf | `- ports.conf |- povoleno mods | | - * .load | `- * .conf |- povoleno conf | `- * .conf |- povolené stránky | `- * .conf

  • apache2.conf je hlavní konfigurační soubor. Dává dohromady kousky zahrnutím všech zbývajících konfiguračních souborů při spuštění webového serveru.
  • ports.conf je vždy součástí hlavního konfiguračního souboru. Slouží k určení naslouchajících portů pro příchozí připojení a tento soubor lze kdykoli přizpůsobit.
  • Konfigurační soubory v adresářích s povolenými mody / povolenými conf / a site / povolenými / obsahují konkrétní konfigurační fragmenty, které spravují moduly, fragmenty globální konfigurace nebo konfigurace virtuálního hostitele.
  • Aktivují se symbolickým propojením dostupných konfiguračních souborů s jejich příslušnými * dostupnými / protějšky. Ty by měly být spravovány pomocí našich pomocníků a2enmod, a2dismod, a2ensite, a2dissite a a2enconf, a2disconf. Podrobné informace najdete na příslušných manuálových stránkách.
  • Binární soubor se nazývá apache2. Vzhledem k použití proměnných prostředí je ve výchozí konfiguraci potřeba apache2 spustit /zastavit pomocí /etc/init.d/apache2 nebo apache2ctl. Přímé volání / usr / bin / apache2 nebude fungovat s výchozí konfigurací.

Kořeny dokumentů

Ve výchozím nastavení Ubuntu neumožňuje přístup prostřednictvím webového prohlížeče žádný soubor kromě těch, které se nacházejí v adresářích / var / www, public_html (je -li povoleno) a / usr / share (pro webové aplikace). Pokud váš web používá kořenový adresář webového dokumentu umístěný jinde (například v /srv), možná budete muset přidat kořenový adresář dokumentu na /etc/apache2/apache2.conf.

Výchozí kořen dokumentu pro Ubuntu je / var / www / html. Můžete vytvořit své vlastní virtuální hostitele pod / var / www. To se liší od předchozích verzí, které poskytují lepší zabezpečení ihned po vybalení.

Hlášení problémů

K nahlášení chyb v balíčku Apache2 v Ubuntu použijte nástroj ubuntu-bug. Před hlášením nové chyby to však zkontrolujte.

Nahlaste chyby specifické pro moduly (například PHP a další) do příslušných balíčků, nikoli na samotný webový server.

Při práci s Linuxem je nepochybně někdy nutné vyhledávání souborů s určitými vlastnostmi. Těmito charakteristikami mohou být velikost nebo typ souboru, oprávnění a další.


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


Dnes budeme analyzovat najít soubory v Linuxu a zadejte hlavní možnosti příkazů nalézt které můžete uplatnit ve své práci.

Formát příkazu nalézt:

naléztzpůsob-možnosti

kde způsob je adresář, ve kterém se má hledat. Jako cestu lze zadat následující hodnoty:

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

/ - vyhledávání z kořenového adresáře;

~ - hledat v domovském adresáři.

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

-název- vyhledejte soubory podle názvu pomocí dané šablony;

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

-skupina- vyhledejte soubory patřící do uvedené skupiny;

-perm- vyhledejte soubory se zadaným režimem přístupu;

-typ- vyhledejte soubory určitého typu. Existuje také dost typů:

  • b - speciální blokový soubor;
  • d - adresář;
  • c - soubor speciálních znaků;
  • f - běžný soubor;
  • l - symbolický odkaz;
  • p - pojmenované potrubí;
  • s - zásuvka.
-velikost n- vyhledejte soubory s jednotkami velikosti n;

-mtime -n + n- vyhledávání souborů, jejichž obsah se změnil před méně než (-) nebo více než (+) dny.

Zvažte některé příklady použití příkazu nalézt :

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

Příklady s volbou -name :

$ find / mnt / usb -name "* .mp3" -print

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

$ find ~ -name "test *" -print

zobrazí seznam souborů domovského adresáře počínaje testem.

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

$ find / -name "*" -print

Výše uvedený příkaz najde všechny soubory v systému, které začínají písmeny od a do j.

Hledejte soubory se specifickými režimy přístupu

Pokud potřebujete najít soubory s určitými režimy přístupu, tato možnost vám pomůže -perm, což s tím snadno pomůže.

Pojďme například vyhledat 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:

$ nalézt. -tisk 775 -tisk

Hledání pomocí nalézt s volbou -perm můžete použít i jinou metodu - před hodnotu režimu můžete dát pomlčku a poté proběhne hledání souborů, pro které jsou nastaveny všechny určené bity oprávnění. V tomto případě jsou navíc zbývající bity ignorovány.

Najdeme například soubory, ke kterým mají uživatelé skupiny plný přístup:

$ nalézt. -perm -070 -tisk

Místo pomlčky můžete zadat znaménko plus. V tomto případě bude provedeno hledání souborů, které mají nastaven alespoň jeden ze zadaných bitů oprávnění. Zbytek bitů je ignorován.

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

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

$ najít / -uživatele admin -print

Výše uvedený příkaz vytvoří vyhledávání souborů v systému vlastněném uživatelským administrátorem.

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

$ find / -group manažery -print

Chcete-li vyhledat soubory neexistujících uživatelů nebo skupin, můžete použít možnosti -uživatel a -skupina:

$ najít / -nouser -print

$ najít / -nogroup -print

Vyhledejte soubory konkrétního typu

Jedna z praktických funkcí týmu nalézt, je schopnost vyhledávat soubory konkrétního typu. Zvažte případy použití této možnosti -typ:

Hledání symbolických odkazů v adresáři / etc:

$ najít / etc -type l -print

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

$ find / mnt / raid -type d -print

Vyhledejte soubory konkrétní velikosti

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

$ nalézt. -velikost 2 000 tis

Výše uvedený příkaz najde a zobrazí na obrazovce 2 megabajtové soubory umístěné v aktuálním adresáři. Pokud například potřebujete najít soubory menší než 500 kilobajtů, bude příkaz následující:

$ nalézt. -velikost -500k -print

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

$ najít / -size + 600M -print

Hledání souborů pomocí volby -mtime

Volba -čas vám umožní najít soubory, které se během určité doby změnily.

Například stojíme před úkolem najít soubory umístěné v adresáři / mnt / raid / upload a změněné za posledních 5 dní. S tím nám pomůže příkaz:

$ find / mnt / raid / upload -mtime -5 -print

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

$ find / mnt / raid / upload -7 -print

Příkaz nalézt je extrémně pohodlný nástroj pro vyhledávání souborů a lze jej také použít pro vyhledávání souborů na discích NFS (síťové systémy souborů), ale v tomto případě je nutné 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 pokryli pouze základní možnosti příkazu find, které vám pomohou ve vaší práci. Použijte to, co je pohodlné, a nedělejte si starosti s maličkostmi!

Potřeba hledat soubory může vyvstat téměř v každém operačním systému, se kterým můžete pracovat souborový systém... Klasickým příkladem pro nás je operační systém Linux, který budeme používat v režimu konzoly. Pojďme se podívat na možnosti vyhledávání souborů v systému pomocí konzoly. Chcete -li najít soubory v systému Linux, existuje příkaz find, který umožňuje poměrně flexibilní vyhledávání a umožňuje zadat další kritéria vyhledávání. Zvažme možnosti tohoto příkazu podrobněji.

Syntaxe příkazu find je:

Najít cestu - možnosti

Jako cesta je uveden adresář, ve kterém chcete hledat. Mohou to být například hodnoty následujícího tvaru:
... - aktuální adresář
/ - kořenový adresář
~ - domovský adresář

Po zadání cesty se takto zobrazí možnosti hledání. Vypadá to matoucí, ale ve skutečnosti nejsou žádné potíže.

Základní možnosti:
-název- vyhledávání podle jména, je nastavena vyhledávací šablona;
-uživatel- vyhledávat soubory patřící konkrétnímu uživateli;
-skupina- vyhledejte soubory patřící do konkrétní skupiny;
-perm- vyhledávání souborů podle přístupového režimu;
-typ- vyhledávání souborů podle typu, seznam typů:

  • b- speciální blokový soubor;
  • d- adresář;
  • C- soubor speciálních znaků;
  • F- běžný soubor;
  • l- symbolický odkaz;
  • p- pojmenované potrubí;
  • s- zásuvka.

-velikost n- vyhledejte soubory s jednotkami velikosti n;
-mtime -n + n- vyhledejte soubory podle data úpravy, méně než (-) nebo více (+) dnů.

Zkusme hledat soubory, simulující různé situace.
Pojďme najít soubory na vyměnitelném zařízení připojeném k USB a předem namontovaném v systému.

Hledat soubory podle přípony:

$ find / mnt / usb -name "* .mp3" -print

V důsledku provedení tohoto příkazu bude adresář prohledán / mnt / usb Je adresář, kde je zařízení připojeno. Hledání bude provedeno ve všech souborech (*) s příponou .mp3.
Vyhledávací masku lze docela flexibilně měnit, například můžete nastavit klíčové slovo, které spustí název souboru, a hledat ho.

Hledat soubory podle klíčového slova:

$ find ~ -name "config *" -tisk

Zobrazí se seznam nalezených souborů začínající na klíčové slovo konfigur.
Jeden z silné stránky příkazy jsou schopnost vyhledávat podle regulárního výrazu. Pro ukázku hledejme soubory začínající latinkou od „a“ do „j“.

Hledejte soubory pomocí vzoru regulárních výrazů:

$ find / -name "*" -tisk

Podle zadané šablony budou prohledány všechny soubory v systému začínající písmeny od „a“ do „j“.

Každý, kdo ví více či méně obeznámen se systémy Linux, ví, že režimy přístupu k souborům jsou velmi důležité. Někdy potřebujete najít soubory, které mají specifická oprávnění, pro tyto účely můžete použít vyhledávání s možností –Perm.

Hledat soubory v režimu přístupu 755:

$ najít. -perm 775 –tisk

Stejným způsobem lze provést flexibilnější vyhledávání. Pojďme najít soubory podle skupiny uživatelů, které mají plný přístup.

Hledat soubory s právy pro skupinu:

$ najít. -perm -070 –print

Znak spojovníku lze nahradit znaménkem plus, což vám umožní vyhledávat soubory, které mají nastaven alespoň jeden ze zadaných bitů oprávnění, ostatní bity budou ignorovány.

V následujícím příkladu zvažte nalezení souborů vlastněných konkrétním uživatelem nebo skupinou.

Hledat soubory konkrétního uživatele:

$ find / -user admin –print

Při hledání se najdou soubory patřící uživateli admin.

Vyhledejte soubory patřící do konkrétní skupiny uživatelů:

$ find / -group roboti –print

Budou nalezeny soubory, které patří do skupiny uživatelů roboti... Kromě toho můžete vyhledávat soubory, které vlastní neexistující uživatelé nebo skupiny:

$ find / -nouser –print $ find / -nogroup –print

Důležitou funkcí je také možnost vyhledávat určité typy souborů. Pokud je například potřeba najít všechny symbolické odkazy v konkrétním adresáři.

Hledání symbolických odkazů:

$ find / etc -type l –print

Hledání bude provedeno v adresáři / etc, ve kterém budou prohledány všechny symbolické odkazy.

Někdy je nutné zobrazit seznam podadresářů v adresáři, pro takové úkoly existuje následující příkaz.

Procházet podadresáře v adresáři:

$ find / mnt / usb -type d –print

Na obrazovce se zobrazí seznam adresářů přítomných v adresáři / mnt / usb... Nyní přejdeme k další možnosti, to je možnost vyhledávat soubory dané velikosti.

Hledat soubory podle velikosti:

$ najít. -velikost 2 000 tis. -tisk

Hledání bude provedeno pro soubory o velikosti 2 000 kilobajtů, velikosti lze zadat v megabajtech, proto místo písmene „k“ byste měli zadat písmeno „M“.

Jako další příklad použijeme možnost vyhledávat soubory podle času jejich úpravy. Pro tyto účely použijeme tuto možnost –Mtime.

Hledat soubory upravené za poslední 2 dny:

$ find / var / www / html -mtime +2 –print

Hledání bude provedeno v adresáři / var / www / html, a vyhledá soubory, které se během posledních 2 dnů změnily. Možná jedna z nejdůležitějších a nejpohodlnějších možností vyhledávání. Můžete také hledat podle data změny s opačnou podmínkou. Pokusme se najít soubory v adresáři, které se nezměnily po dobu 5 dnů.

Vyhledejte soubory, které se nezměnily po dobu 5 dnů:

$ find / var / www / html -5 –print

To je prozatím vše, doufám, že vám tyto příklady pomohly tento příkaz zjistit. Jeho pohodlí je jasně prezentováno a nebude nadbytečné vědět o jeho schopnostech, zvláště pokud budete pracovat s Linuxový systém... Dovednosti kompetentního vyhledávání souborů výrazně šetří váš osobní čas, a jak víte, čas je k nezaplacení. Hodně štěstí ve vaší práci!