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 metodyfind
proces., -
starting/path
atribut definuje adresář na nejvyšší úrovni, kdefind
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: