Jak Najít Soubory v Linux Pomocí Příkazového Řádku

find je příkaz pro rekurzivní filtrování objektů v systému souborů založených na jednoduchý podmíněný mechanismus. Pomocí find vyhledejte soubor nebo adresář v systému souborů. Pomocí příznaku -exec lze soubory najít a okamžitě zpracovat ve stejném příkazu.,

Find Linux Files by Name or Extension

Use find from the command line to locate a specific file by name or extension., Následující příklad vyhledá *.err soubory /home/username/ adresář a všechny podřízené adresáře:

find /home/username/ -name "*.err"

měli Byste vidět podobný výstup v konzoli:

 /home/username/example.errThe matching file in the /home/username/ directory is "example.err"

Společné Linux Najít Příkazy a Syntaxe

find příkaz obvykle následující podobu:

find options starting/path expression
  • options atribut určuje chování a optimalizace metody find proces.,
  • starting/path atribut definuje adresář na nejvyšší úrovni, kde find začíná filtrování.
  • expression atribut kontroly, testy, vyhledávání adresář hierarchie produkovat výstup.

Najít Soubor v Linuxu Pomocí Souboru

najít soubor pomocí názvem, použijte syntaxi find -name filename. Vynechání cesty vyhledá soubor na celém disku., Například, můžete najít soubor, pojmenovaný example.err se nachází v /home/username adresář s následujícím příkazem:

find -name example.err

měli Byste vidět podobný výstup:

 ./username/example.err

vyhledat Soubor v Aktuálním Adresáři Pomocí Příkazu Najít

podívejte se na příklad struktury adresáře a soubory. Jsou uvedeny v příkladech této příručky.,chcete najít soubor example.err v adresáři, nebo některý z jeho podadresářů, můžete se vydat následující příkaz:

find . -name example.err

výstup je podobná následující:

 ./example.err./directory_1/example.err

výstup odráží directory_1 adresářová struktura:

 ├── directory_1│ ├── subdirectory_1│ │ └── example.err│ └── example.err

Najít Image Soubory v Linux Pomocí Příkazového Řádku

Odkazující struktura souborů v předchozí části, tam je obraz s názvem image01.png, který je umístěn v kořenovém adresáři (/)s adresářové struktury.,

najít soubor image01.png, spusťte následující find příkaz, který vyhledá všechny .png soubory uložené uvnitř / adresář.

find -name *.png

měli Byste vidět podobný výstup:

 ./image01.png

Změnit typ souboru obrázku a podívejte se na všechny .jpg soubory v kořenovém adresáři (/):

find -name *.jpg

výstup se podobá příkladu., Podívejte se na příklad adresářové struktury v předchozí části pro zobrazení umístění souboru.

 ./web_files/unnamed.jpg

Najít Prázdný Soubor v Adresáři Pomocí Příkazového Řádku

najít prázdný soubor v adresáři pomocí příkazového řádku následující příkaz:

find . -type f -empty

Pokud žádný výstup je vrácen, pak není prázdný soubor ve vašem aktuálním adresáři.

Možnosti a Optimalizace pro Hledání Souborů v Linuxu Pomocí Příkazového Řádku

výchozí nastavení pro find ignoressymbolic odkazy., Pokud chcete, find sledovat a návrat symbolické odkazy, přidejte -L možnost příkazu, jak je uvedeno níže:

find -O3 -L /var/www/ -name "*.html"

Tento příkaz umožňuje maximální optimalizaci úrovně (-O3) a umožňuje find následovat symbolické odkazy (-L). find prohledává celý strom adresářů pod /var/www/ pro soubory, které končí .html.,

find optimalizuje svou strategii filtrování pro zvýšení výkonu. Tři uživatelsky volitelná optimalizace úrovně jsou specifikovány jako -O1 -O2 -O3. -O1 optimalizace je výchozí a síly find filtrovat na základě názvem před spuštěním všech ostatních testů.,

Optimalizace -O2 úroveň upřednostňuje názvem filtry, jako v -O1, a pak běží všechny typu souboru, filtrování před pokračováním s další více zdrojů náročné podmínky. Úroveň -O3 optimalizace umožňuje find provést nejzávažnější optimalizace a uspořádává všechny testy, na základě jejich relativní náklady a pravděpodobnost jejich úspěchu.,

Command Description
-O1 Filter based on filename first (default).
-O2 File name first, then file-type.,
-O3 Povolit find automaticky re-pořadí vyhledávání na základě účinného využívání zdrojů a pravděpodobnost. úspěch
-maxdepth X Vyhledávání v aktuálním adresáři i všech podadresářích X úrovní.
-iname Hledání bez ohledu na text případ.,
-not Return only results that do not match the test case.
-type f Search for files.
-type d Search for directories.,

Najít Soubory v Linuxu tím, že Čas Modifikace Pomocí Příkazového Řádku

find příkaz můžete filtrovat adresář hierarchie založená na tom, kdy byl soubor naposledy změněn., Například, následující příkaz najde soubor s .err rozšíření, která byla upravena v posledních 7 dnů:

find / -name "*err" -mtime -7

příklad příkaz vrátí následující výstup:

Použití Grep Najít Soubory v Linux Pomocí Příkazového Řádku

find příkaz je pouze schopen filtrovat hierarchie adresářů na základě názvu souboru a metadata. Pokud potřebujete hledat na základě obsahu souboru, použijte nástroj jakogrep., Zvažte následující příklad:

find . -type f -exec grep "test" '{}' \; -print

Tento příkaz vyhledá každý objekt v aktuálním adresáři hierarchie (.), že je soubor (-type f) a pak spustí příkaz grep "test" pro každý soubor, který splňuje podmínky. Soubory, které odpovídají, jsou vytištěny na obrazovce (-print). Kudrnaté rovnátka ({}) Jsou zástupný symbol pro výsledky najít shodu., {} jsou uzavřeny do jednoduchých uvozovek ('), aby se zabránilo předání grep chybně názvem. -exec příkaz je ukončen středníkem (;), které by měly být escapovány (\;), aby se zabránilo výklad shell.

soubor použitý v příkladu (example.err) má uvnitř text, který říká „test“., Když spustíte příkaz příklad, uvidíte podobný výstup:

Grep identifikoval každý soubor v aktuálním pracovním adresáři, který obsahuje řetězec „test“.,

Před find příkaz je provedení -exec možnost, že by mohl přinést podobný výstup na příkladu výše pomocí xargs příkaz:

find . -type f -print | xargs grep "test"

Proces a Najít Soubory Pomocí Příkazu Najít v Linuxu

-exec volba spouští příkazy proti každý objekt, který odpovídá find výraz., Zvažte následující příklad:

find . -name "example.err" -exec chmod o+r '{}' \;

filtry každý objekt v současné hierarchii (.) pro soubory rc.conf běží chmod o+r příkaz změnit oprávnění souboru. find příkaz výsledky.

příkaz example spustí a provede volbu -exec v kořenovém adresáři procesufind. Použijte -execdir k provedení zadaného příkazu v adresáři, kde je shoda umístěna., To může zmírnit bezpečnostní obavy a u některých operací dosáhnout lepšího výkonu.

-exec nebo-execdir možnosti běží bez dalších výzev. Pokud chcete být vyzváni před opatření, vyměňte -exec -ok nebo -execdir -okdir.

jak najít a odstranit soubory pomocí příkazového řádku Linux

upozornění

tuto možnost používejte s velkou opatrností.,

Přidat možnost -delete do konce zápasu výraz odstranit všechny soubory, které odpovídají. Tuto možnost použijte, pokud jste si jisti, že výsledky odpovídají pouze souborům, které chcete odstranit.

V níže uvedeném příkladu find rekurzivně vyhledá všechny soubory v hierarchii začíná na aktuální adresář a odstraní všechny soubory, které končí na .err rozšíření:

find . -name "*.err" -delete

Ještě pár otázek?,

Připojte se k naší komunitě a zveřejněte své dotazy pro další nadšence Linode a Linux, kteří vám pomohou.

související otázky:

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *