Najít Příkaz v Linuxu (Najít Soubory a Adresáře)
find
příkaz je jedním z nejmocnějších nástrojů v systému Linux administrátory arsenal. Vyhledává soubory a adresáře v hierarchii adresářů na základě daného výrazu uživatele a může provádět akce zadané uživatelem na každém shodném souboru.
příkazfind
můžete použít k vyhledávání souborů a adresářů na základě jejich oprávnění, typu, data, vlastnictví, velikosti a dalších., Může být také kombinován s dalšími nástroji, jako je grep
nebo sed
.
najít Syntaxi Příkazu #
obecná syntaxe find
příkazu je následující:
-
options
atribut controls léčbě symbolické odkazy, možnosti ladění a optimalizace metody. - atribut
path...
definuje výchozí adresář nebo adresáře, kde find prohledá soubory., - atribut
expression
se skládá z možností, vzorů vyhledávání a akcí oddělených operátory.
pro vyhledávání souborů v adresáři musí mít uživatel vyvolávající příkaz find
oprávnění ke čtení v tomto adresáři.
podívejme se na následující příklad:
Najít Soubory podle Názvu #
Hledání souborů podle názvu je asi nejčastější použití find
příkaz., Chcete-li najít soubor podle jeho názvu, použijte volbu -name
následovanou názvem souboru, který hledáte.
například, chcete-li vyhledat soubor s názvem document.pdf
/home/linuxize
adresář, měli byste použít následující příkaz:
spustit případ-necitlivý vyhledávání, změnit na -name
-iname
:
výše uvedený příkaz bude odpovídat „Dokumentu.pdf“, “ dokument.pdf“..atd.,
najít soubory podle přípony #
vyhledávání souborů podle přípony je stejné jako vyhledávání souborů podle názvu. Chcete-li například najít všechny soubory, které končí s .log.gz
uvnitř /var/log/nginx
directory, zadejte:
je důležité zmínit, že musíte buď citovat vzor nebo útěk hvězdička *
symbol s lomítkem \
tak, že to nemá se interpretuje shell při použití zástupný znak.,
Chcete-li najít všechny soubory, které neodpovídají regexu*.log.gz
můžete použít volbu-not
. Chcete-li například najít všechny soubory, které nekončí v *.log.gz
použití:
Najít Soubory podle Typu #
Někdy budete muset hledat pro konkrétní typy souborů, jako jsou běžné soubory, adresáře, nebo symbolické odkazy. V Linuxu je vše soubor.,div>: pojmenované roury (FIFO)
s
: zásuvkynapříklad, najít všechny adresáře v aktuální pracovní adresář , měli byste použít:
common příkladem může být rekurzivně webové stránky změnit oprávnění souboru 644
a adresář oprávnění 755
chmod
příkaz:
Najít Soubory podle Velikosti #
najít soubory na základě velikosti souboru, projít -size
parametr spolu s velikostí kritéria.,9fdb538a6b“>: 512-byte bloků (výchozí)
c
: bajtyw
: dvou-byte slovak
: KbM
: MbG
: Gbnásledující příkaz najde všechny soubory přesně 1024
bajtů uvnitř /tmp
adresáře:
find
příkaz také umožňuje vyhledávat soubory, které jsou větší nebo menší než zadaná velikost.,
v následujícím příkladu hledáme všechny soubory menší než 1MB
uvnitř aktuálního pracovního adresáře. Všimněte si, minus -
symbol než hodnota velikosti:
Pokud chcete hledat pro soubory s velikostí větší než 1MB
, pak budete muset použít plus +
symbol:
můžete dokonce vyhledat soubory v rozsahu velikostí., Následující příkaz najde všechny soubory mezi 1
2MB
:
Najít Soubory podle Data Modifikace #
find
příkaz můžete také vyhledávat soubory na základě jejich poslední modifikace, přístupu, nebo změna času.
stejné jako při vyhledávání podle velikosti, použijte symboly plus a minus pro „větší než“nebo“ menší než“.
Řekněme, že před několika dny jste upravili jeden z konfiguračních souborů dovecot, ale zapomněli jste, který z nich., Můžete snadno filtrovat všechny soubory v /etc/dovecot/conf.d
adresář, který končí .conf
a byl upraven v posledních pěti dny:
Zde je další příklad filtrování souborů na základě data modifikace pomocí -daystart
možnost., Níže uvedený příkaz vypíše všechny soubory v /home
adresáře, které byly změněny 30
nebo více dny:
Najít Soubory podle Oprávnění #
-perm
možnost vám umožní vyhledat soubory na základě soubor permissions.,
chcete-li například najít všechny soubory s oprávněními přesně 775
uvnitř /var/www/html
adresář, měli byste použít:
můžete prefix číselné režimu s minus -
nebo lomítko /
.
když se jako předpona použije lomítko /
, musí mít alespoň jedna kategorie (uživatel, skupina nebo jiné) alespoň příslušné bity nastavené pro shodu souboru.,
Vezměme si následující příklad příkazu:
výše uvedený příkaz bude odpovídat všechny soubory s číst oprávnění nastavit buď pro uživatele, skupiny, nebo ostatní.
Pokud se jako předpona použije mínus -
, pak musí být soubor nastaven alespoň na zadané bity., Následující příkaz vyhledá soubory, které mají číst a zapisovat oprávnění pro vlastníka a skupinu a jsou čitelné pro ostatní uživatele:
Najít Soubory podle Vlastníka #
najít soubory ve vlastnictví určitého uživatele nebo skupiny pomocí -user
-group
možnosti.
například pro vyhledávání všech souborů a adresářů vlastněných uživatelem linuxize
byste spustili:
zde je příklad reálného světa., Řekněme, že chcete najít všechny soubory ve vlastnictví uživatele www-data
a změnit vlastnictví odpovídající soubory www-data
nginx
:
Najít a Odstranit Soubory, #
odstranit všechny odpovídající soubory, append -delete
možnost do konce zápasu výraz.
ujistěte se, že používáte tuto možnost pouze tehdy, pokud jste si jisti, že výsledek odpovídá souborům, které chcete odstranit., Vždy je dobré vytisknout odpovídající soubory před použitím volby -delete
.
například, chcete-li odstranit všechny soubory končící s .temp
/var/log/
, měli byste použít:
-delete
varianta s extrémní opatrností. find
příkaz je vyhodnocen jako výraz a pokud přidáte -delete
možnost první příkaz smaže vše pod výchozí body, které jste zadali.,Když přijde do adresářů, find
může odstranit pouze prázdné adresáře, stejně jako rmdir
.
závěr #
ukázali jsme vám, jak používat příkaz find
s různými možnostmi a kritérii.
Tento článek by vám měl poskytnout základní znalosti o tom, jak najít soubory v systémech Linux. Můžete také navštívit stránkufind
man a přečíst si všechny další výkonné možnosti příkazufind
.