Vyhledávání souborů je relativně snadné, když používáte GUI. Ale v určitých prostředích, jako jsou servery bez GUI, musíte hledat soubory pomocí příkazového řádku.
V Linuxu existuje výkonný příkaz, který vám pomůže vyhledávat soubory a složky s názvem find . V tomto článku budeme diskutovat o find příkaz s několika příklady.
Co je příkaz find v Linuxu?
find umožňuje efektivně vyhledávat soubory, složky a znaková a bloková zařízení.
Níže je uvedena základní syntaxe find příkaz:
find /path/ -type f -name file-to-search
Kde,
/pathje cesta, kde se očekává, že bude soubor nalezen. Toto je výchozí bod pro vyhledávání souborů. Cesta může být také/nebo.které představují kořenový a aktuální adresář.-typepředstavuje deskriptory souborů. Mohou to být kterékoli z níže uvedených:
f – Běžný soubor jako jsou textové soubory, obrázky a skryté soubory.
d – Adresář . Toto jsou složky, o kterých se uvažuje.
l – Symbolický odkaz . Symbolické odkazy ukazují na soubory a jsou podobné zkratkám.
c – Znaková zařízení . Soubory, které se používají pro přístup k znakovým zařízením, se nazývají soubory znakových zařízení. Ovladače komunikují se znakovými zařízeními odesíláním a přijímáním jednotlivých znaků (bajtů, oktetů). Příklady zahrnují klávesnice, zvukové karty a myš.
b – Blokovat zařízení . Soubory, které se používají pro přístup k blokovým zařízením, se nazývají soubory blokových zařízení. Ovladače komunikují s blokovými zařízeními odesíláním a přijímáním celých bloků dat. Příklady zahrnují USB, CD-ROM
-nameje název typu souboru, který chcete prohledávat.
Příklady příkazu find
Nyní známe syntaxi find příkaz, podívejme se na několik příkladů.
Jak vyhledávat soubory podle názvu nebo přípony
Předpokládejme, že potřebujeme najít soubory, které obsahují ve svém názvu „style“. Použijeme tento příkaz:
find . -type f -name style* Výstup
Nyní řekněme, že chceme najít soubory s konkrétní příponou jako .html . Příkaz upravíme takto:
find . -type f -name *.html Výstup
Jak hledat skryté soubory
Skryté soubory jsou znázorněny tečkou na začátku názvu souboru. Obvykle jsou skryté, ale lze je zobrazit pomocí ls -a v aktuálním adresáři.
Můžeme upravit find k vyhledání skrytých souborů, jak je uvedeno níže.
find . -type f -name ".*" Výstup
Jak prohledávat soubory protokolu a konfigurační soubory
Soubory protokolu mají obvykle příponu .log , a můžeme je najít takto:
find . -type f -name "*.log" Výstup
Podobně můžeme hledat konfigurační soubory takto:
find . -type f -name "*.conf" Jak hledat jiné soubory podle typu
Soubory bloků znaků můžeme vyhledat zadáním c na -type :
find / -type c
Podobně lze soubory bloků zařízení najít pomocí b :
find / -type b Jak vyhledávat adresáře
V níže uvedeném příkladu nacházíme složky s názvem lib . Všimněte si, že používáme -type d .
find . -type d -name "lib*" Výstup
💡 Tip:Adresáře můžeme identifikovat podle d příznak ve výstupu ls -lrt .
Jak vyhledávat soubory podle velikosti
Neuvěřitelně užitečné použití find příkaz je vypsat soubory na základě konkrétní velikosti.
find / -size +250MB Mezi další jednotky patří:
G:GigaBytes.M:Megabajty.K:kilobajtyb:bajtů.
Stačí nahradit
find <directory> -type f -size +N<Unit Type>
Jak vyhledávat soubory podle času úpravy
find /path -name "*.txt" -mtime -10
- -mtime +10 znamená, že hledáte soubor upravený před 10 dny.
- -mtime -10 znamená méně než 10 dní.
- -mtime 10 Pokud přeskočíte + nebo –, znamená to přesně 10 dní.
Níže je obsah mého domovského adresáře:
Aplikujme příklad v mém domovském adresáři.
find . -type f -name ".*" -mtime +10
Praktické příklady find s bash skripty
Můžeme kombinovat find pomocí rm nebo mv vytvářet smysluplné bash skripty, které lze automatizovat.
Řekněme, že chceme vytvořit skript, který přesune soubory protokolu starší než 7 dní na záložní cestu. Odtud odstraní soubory protokolu starší než 30 dní. Můžeme vytvořit skript a naplánovat jej pomocí cron . Můžete se dozvědět více o cron pracovních míst zde.
Podívejme se na skript:
#!/bin/bash
# Script to move from logs older than 7 days to backup logs path: /app/backup_logs/ESB0*
# move ESB01 logs to backup
find /logs/esb01/audit -name "*.tar.gz" -mtime +7 -exec mv {} app/backup_logs/ESB01/ \;
# Remove logs from backup path after 30 days
find /app/backup_logs/ESB01 -name "*.tar.gz" -mtime +30 -exec rm {} \;
Všimněte si, že používáme exec pomocí find . V podstatě exec provede zadaný příkaz ( mv a rm v našem případě). {} je zástupný symbol, který obsahuje výsledky příkazu. Nakonec poskytujeme oddělovač ; . Protože nechceme, aby shell interpretoval středník, uzavřeme jej pomocí \ .
Sdílený skript je velmi užitečný při archivaci a odstraňování protokolů.
Zabalení
V tomto článku jsme studovali find podrobně a naučili se vyhledávat soubory podle názvu, typu, velikosti a času úpravy.
Doufám, že vám tento návod pomohl.
Podělte se o své myšlenky na Twitteru!
Zde si můžete přečíst mé další příspěvky.
Zdroje:Bannerové obrázky z ilustrací Office od Storyset a Canva.