GNU/Linux >> Znalost Linux >  >> Linux

Jak hledat soubory z příkazového řádku Linuxu

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,

  • /path je 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ář.
  • -type představuje deskriptory souborů. Mohou to být kterékoli z níže uvedených:

fBěžný soubor jako jsou textové soubory, obrázky a skryté soubory.

dAdresář . Toto jsou složky, o kterých se uvažuje.

lSymbolický odkaz . Symbolické odkazy ukazují na soubory a jsou podobné zkratkám.

cZnaková 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š.

bBlokovat 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

  • -name je 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 :kilobajty
  • b :bajtů.

Stačí nahradit příslušnou jednotkou.

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.


Linux
  1. 8 tipů pro příkazový řádek Linuxu

  2. Jak nainstalovat software z příkazového řádku Linuxu

  3. Migrace linuxového serveru z příkazového řádku

  1. Hledání souborů v příkazovém řádku (jak na to)

  2. Jak najít soubory v CentOS 8 na příkazovém řádku

  3. Jak používat Linuxový příkaz find k hledání souborů

  1. 4 Nástroje Markdown pro příkazový řádek Linuxu

  2. Jak používat Ranger pro navigaci v souborech z příkazového řádku

  3. Jak mohu zkopírovat složku z příkazového řádku systému Linux?