Úvod
find umožňuje vyhledávat konkrétní řetězec znaků pomocí rozhraní příkazového řádku Linuxu. Je to velmi praktický nástroj, protože není omezen na názvy souborů. Můžete jej použít k prohledání konkrétního místa, přidat možnosti pro ovládání chování vyhledávání a pomocí dalších příkazů mu sdělit, jak spravovat data, která najde.
Tento výukový program vám ukáže, jak vyhledat a spravovat soubory v systému Linux pomocí find příkaz.
Předpoklady
- Přístup k oknu terminálu/příkazovému řádku
- Uživatelský účet s sudo privilegia
Základní syntaxe příkazu hledání
Základní syntaxe z find příkaz používá následující formát:
find <options> <location> <expression> <action> <name> - Umístění – Pokyn
findkde začít hledat hledaný výraz. - Výraz – Řekne
findjakou kategorii informací má hledat. - Akce – Aakce atribut provede příkaz ve výsledcích vyhledávání. Je to volitelný prvek.
- Jméno – Představuje řetězec textu (nebo jiná data), který hledáte.
- Možnosti – Tento atribut není povinným prvkem
findpříkaz. Lze jej použít ke kontrole chování a optimalizaci procesu vyhledávání.
Jak používat příkaz find
find příkaz uvádí všechny výskyty řetězce znaků, který jste zahrnuli do vyhledávání. find příkaz také umožňuje definovat parametry vyhledávání, možnosti a umístění s vysokou úrovní přesnosti.
Najít soubory podle umístění
Vyhledávání souborů na základě jejich řetězce umístění může být jednoduchý příkaz, například:
sudo find /home/user filename Tento příkaz vyhledá uživatele účet na domovské stránce adresář. Pokud si nejste jisti, kam se chcete podívat, můžete umístění vyhledávání rozšířit.
Pokud máte například dva uživatelské účty a nepamatujete si, do kterého jste soubor uložili, můžete zadat:
sudo find /home filename
find příkaz prohledá vše pod /home adresář (včetně všech uživatelských adresářů) pro hledaný výraz. V našem příkladu je hledaný výraz název souboru .
Použijte tečku . pro vyhledání adresáře, ve kterém se aktuálně nacházíte:
sudo find .
Zadejte lomítko / a váš systém prohledá celý pevný disk:
sudo find /
Znak vlnovky ~ se používá k prohledávání domovského adresáře aktuálního uživatele:
sudo find ~ Používejte výrazy s příkazem find
Výrazy aplikují další parametry na find proces vyhledávání příkazů. Nejběžnějším výrazem je -name . Tento výraz hledá umístění, které jste zadali pro soubor s názvem, který zadáte do název pole.
sudo find –name settings.txt Systém vyhledá v aktuálním adresáři jakýkoli soubor s názvem settings.txt.
Systém zobrazuje pouze názvy souborů s přesnou shodou s hledanými výrazy. Toto omezení může způsobit problémy, pokud má název souboru například velká písmena.
Chcete-li říct find chcete-li ignorovat velká/malá písmena, použijte –iname výraz takto:
sudo find /home –iname filename Systém prohledá /home adresář a vrátí cokoliv s názvem název souboru , Název souboru a dokonce FILENAM .
Použijte –type d výraz pro určení, zda hledáte soubor nebo adresář:
sudo find . –type d –name Videos Tento příkaz vyhledá v aktuálním adresáři (s tečkou) adresář s názvem „Videa .“
Ve výchozím nastavení find vyhledává soubory, ale soubory můžete určit pomocí -type f .
Zobrazit všechny soubory, které neobsahují hledaný název:
sudo find . -not filename Vyhledejte soubory s danou úrovní oprávnění:
sudo find . -perm 0000 Vrátit seznam všech souborů vlastněných konkrétním uživatelským jménem:
sudo find . -user username Zobrazit posledních 00 upravených souborů:
sudo find . -mtime 00 Číselná hodnota určuje počet souborů, které systém zobrazí. Zobrazit posledních 00 přístupných souborů:
sudo find . -atime 00 Zobrazit všechny soubory větší než 20 megabajtů:
sudo find . -size +20M Terminál zobrazí seznam všech souborů, které odpovídají kritériím velikosti.
Příkazy odkazující na velikost hledaných položek lze použít jednotlivě k zobrazení všech souborů větších než určitá velikost, menších než určitá velikost nebo v definovaném rozsahu.
Najděte název nebo příponu
name atribut definuje objekt vašeho hledání. find nástroj přejde na zadané místo pro jakýkoli řetězec znaků, který zadáte. Název souboru, který hledáte, je obvykle na konci příkazu, za umístěním, možnostmi a výrazy.
Standardní písmena a číslice se zadávají jako řetězec znaků na konci příkazu. Speciální znaky – zástupný znak, tečka, lomítko atd. – vyžadují použití jednoduchých uvozovek kolem názvu. Jednoduché uvozovky zajišťují, že systém interpretuje požadavek správně.
Chcete-li vyhledat soubory s konkrétní příponou, například .html, zadejte následující příkaz nebo .php :
sudo find . –type f –name ‘*.html’
Systém vyhledává v aktuálním adresáři běžné soubory (type –f ) které mají příponu .php . V tomto případě hvězdička (* znak) se používá jako zástupný znak , což znamená, že může zastupovat libovolný počet znaků jakéhokoli typu.
Zástupné znaky jsou užitečné, pokud si pamatujete pouze část názvu souboru nebo hledáte soubory s určitou příponou.
Proveďte akce pomocí příkazu find
Viděli jsme, jak používat find příkaz k zobrazení výsledků hledání v okně terminálu. Akce atribut může vylepšit tuto funkčnost a provést konkrétní úkol, jakmile je soubor umístěn.
Následující příkaz prohledává skutečný obsah souborů (místo pouze názvů souborů):
sudo find ~ –type f –exec grep “contents” ‘{}’ \; –print - Žádáme systém, aby našel soubor (
-type f) v domovském adresáři našeho uživatele (~). - Nařídíme systému, aby provedl akci (
-exec) spuštěnímgreppříkaz pro vyhledání slova obsah v obsahu všech souborů . {}závorky označují výsledky shodyfinda jsou v jednoduchých uvozovkách, takžegreppříkaz je nevykládá špatně.- Uzavřeme
greppříkaz se středníkem (;) a používáme zpětné lomítko (\), aby si systém středník špatně nevyložil jako pokyn. - Nakonec
–printvolba říká systému, aby zobrazil výsledky.
Zkopírujte a vložte tento příkaz do okna terminálu a místo ~ nahraďte svou vyhledávací cestu znak a hledaný výraz pro slovo obsah.
Můžete použít find –exec kombinaci pro rychlou změnu oprávnění souboru:
sudo find /path –name “filename.ext” –exec chmod 777 ‘{}’ \;
Tento příkaz používá –exec příkaz ke spuštění chmod změnit oprávnění k souboru název_souboru.přípona aby jej mohl číst, zapisovat a spouštět každý.
Vyhledejte a odstraňte soubory pomocí příkazu find
Pomocí –delete můžete rychle najít a odstranit jeden nebo více souborů jedním příkazem.
V tomto příkladu find odstraní všechny soubory, které končí příponou .html rozšíření.
sudo find . –name “*.html” –delete Tento příkaz prohledá aktuální adresář (zobrazený v příkazovém řádku) pro všechny soubory s .html rozšíření a odstraňte je. Obrázek ilustruje jednoduchost procesu.
Tento typ akce je užitečný pro odstranění starých záložních souborů, pokud jste nahradili “*.bak“ místo “*.bmp“.
Přidejte možnosti k nalezení příkazu
Možnosti jsou speciální funkce vložené před cestu hledání v find příkazový řetězec. -L , -H a -P jsou volitelné prvky používané k ovládání manipulace se symbolickými odkazy.
–PTato možnost představuje výchozí chování. Systém nesleduje symbolické odkazy.-HSystém nesleduje symbolické odkazy s výjimkou zpracování tohoto specifického příkazu.-LNásleduje symbolické odkazy. Informace jsou převzaty ze souboru, na který odkaz směřuje. Ne pro samotný odkaz.
Možnosti mohou změnit úroveň optimalizace vyhledávání. Existují tři (3) úrovně optimalizace, které definují, jak vyhledávací program organizuje vyhledávání a rychlost provádění tohoto vyhledávání.
- –O1 Tato úroveň optimalizace se používá ve výchozím nastavení. Nejprve se spustí vyhledávání na základě názvů souborů.
- –O2 vyhledávání podle typu se spouští hned po vyhledávání podle jmen. Než proběhnou další vyhledávání.
- –Vyhledávání O3 se provádějí za účelem maximalizace rychlosti. Bez ohledu na další prvky dotazu.