Ako používať príkaz Command v systéme Linux? 40 Príklady sú zahrnuté

Nájsť je výkonný nástroj príkazového riadku, ktorý umožňuje správcom systému vyhľadávať a spravovať súbory a adresáre na základe širokého spektra vyhľadávacích kritérií. Môže nájsť súbory podľa ich názvu, typu alebo prípony, veľkosti, oprávnení atď.


Okrem vyhľadania súborov a adresárov, kombinácia príkazu find s ostatnými vám umožní podniknúť kroky na výsledky. Pridanie voľby -exec umožňuje sysadminom spúšťať externé príkazy a vykonávať akcie ako kopírovanie, presúvanie, mazanie alebo zmena povolení súborov, ktoré zodpovedajú zadaným kritériám, ako je veľkosť, názov atď..

V tomto článku začneme vysvetlením základných príkazov na vyhľadávanie s príkladmi. To vám ukáže, ako nájsť súbory a adresáre. Ukážeme vám, ako použiť voľbu -exec na prácu so súbormi alebo adresármi na základe ich veľkosti, oprávnení atď..

Všeobecná syntax príkazu find je

nájsť {path} {name -of-file alebo dir-to-search} {action-to-take}

Kde,

  • cesta určuje adresár.
  • názov súboru alebo adresára na vyhľadávanie: Názov súboru alebo adresára, ktorý sa má vyhľadať
  • podniknuté kroky: napríklad kopírovanie, mazanie, presúvanie atď.

V tomto návode vysvetlíme, ako nájsť súbory a adresáre, ktoré zodpovedajú zadaným vzorom. Uvidíme tiež, ako vykonať akcie na súboroch alebo adresároch, ktoré nájde príkaz find. Táto príručka je založená na Ubuntu, ale je použiteľná pre väčšinu distribúcií a verzií systému Linux.

Contents

Vyhľadajte súbory a adresáre

Vyhľadajte konkrétne súbory podľa názvu alebo prípony

Ak chcete vyhľadať konkrétny súbor, spustite nasledujúci príkaz z koreňového adresára (/). Príkaz obsahuje presný názov súboru, ktorý hľadáte.

Nájsť . -name file22.txt

Výkon

./test/file22.txt
./sales/file22.txt

Upozorňujeme, že výsledky zahŕňajú cestu. Je to dôležité, ak nepoznáte adresár, v ktorom sa súbor nachádza, alebo keď sa nachádza na viac ako jednom mieste.

Môžete tiež vyhľadať súbor v inom adresári, zatiaľ čo ste stále v aktuálnom umiestnení. V takom prípade musíte zadať cestu k adresáru, v ktorom chcete vyhľadávať.

nájsť ./test -name file22.txt

Hľadáte konkrétne súbory v inom adresári

V našom prípade vyhľadáme všetkých, ktorí začínajú súborom písmen v testovacom adresári.

nájsť ./test -name file *

Výkon

./test/file22.txt
./test/file30.doc
./test/file1.txt
./ Test / file5, doc

Vyhľadajte súbory podľa prípony

Ak chcete vyhľadať súbory s určitou príponou, pridajte ich do príkazu.

Nájsť . -name * .txt

Výkon

./test/subtest/subfil.txt
./test/file22.txt
./test/file1.txt
./home1/files32.txt
./home2/file22.txt
./qa/tags.txt

Vyhľadajte súbory a adresáre podľa názvu

Pomocou príkazu nižšie vyhľadajte súbory a adresáre začínajúce sa písmenami qa. V našom počítači máme súbory qatree.txt a qa.txt, ako aj adresár s názvom qa.

Ak spustíme príkaz;

nájsť ./-meno "qa *"

Vracia nasledujúci výstup

./test/qatree.pdf
./test/qa.txt
./ Home / qa

Príkaz vráti súbory aj adresáre zodpovedajúce kritériám vyhľadávania. Ak chcete nájsť iba súbory alebo adresáre, musíte to zadať v príkaze.

Vyhľadajte iba súbory alebo adresáre

Iba pre súbory použite prepínač typu f.

Iba súbory

nájsť ./ -typ f -name "qa *"

Výkon

./test/qatree.pdf
./test/qa.txt

Iba adresáre

Pridajte voľbu typu d a vyhľadajte iba adresáre.

nájsť ./ -typ d -name "qa *"

Výkon

./ Home / qa

Príkaz na vyhľadávanie veľkých a malých písmen

Pri všetkých vyhľadávaniach s prepínačom -name sa rozlišujú malé a veľké písmená a nedajú výsledky veľkými písmenami. Ak chcete získať všetky prípady, použite voľbu -iname.

nájsť ./ – meno "qa *"

Výkon

./test/qatree.pdf
./test/qa.txt
./test/QAtest.txt
./ Home / qa

Vyhľadajte súbor z viacerých adresárov

Ak chcete nájsť súbory v rôznych adresároch, do príkazu pridajte ich cesty. V našom prípade skontrolujeme skúšobné a číselné adresáre.

nájsť ./test ./numeric -name file22.txt -type f

Výkon

./test/file22.txt
/root/numeric/file22.txt

Vyhľadajte viac súborov s rôznymi príponami zo všetkých adresárov

Príkaz find môžete použiť na vyhľadanie viacerých súborov, ktoré zdieľajú rôzne prípony, ako napríklad * .doc, * .txt * .pdf, atď. Toto je možné vykonať osobitne, jednu príponu naraz alebo pomocou iba jedného príkazu, ktorý obsahuje všetky požadované rozšírenia.

Nájsť . -typ f (-name "*.TXT" -o -name "* .pdf" -o -name "* .doc" )

výkon

./test/subtest/subfil.txt
./test/qatree.pdf
./test/file22.txt
./test/qa.txt
./test/file30.doc
./books/acro.pdf
./data1/FILE22.txt
./docs/files32.txt

Vyhľadajte súbory obsahujúce určitý text

Niekedy chcete získať prístup k súboru, ktorý obsahuje určitý text, ale nemôžete si spomenúť na jeho názov alebo umiestnenie. Tento príkaz vám umožní vyhľadať všetky súbory obsahujúce váš cieľový text.

Ak chcete vyhľadať všetky súbory obsahujúce slovo hyperkonvergencia “, použite;

nájsť / -typ f -exec grep -l -i "hyperconvergence" {};

Výkon

/ Koreň / číselná / HCl
/ Koreň / HCIP

Voľba –i umožňuje príkazu ignorovať prípady a nájde text, či je kapitalizovaný alebo nie, t. J. Hyperkonvergencia, hyperkonvergencia atď..

Ak chcete vyhľadať súbory v konkrétnom adresári, jednoducho ich pridajte do príkazu

nájsť ./numeric -type f -exec grep -l -i "hyperconvergence" {};

Výkon

./ Číselná / HCl

Nájdite súbory a adresáre na základe veľkosti

Nájdete všetky súbory alebo adresáre, ktoré sú menšie, rovnaké alebo väčšie ako určitá veľkosť, v určitom rozsahu alebo prázdne. Použite formát primeranej veľkosti v závislosti od typu súborov alebo adresárov, ktoré hľadáte.

Možnosti veľkosti zahŕňajú;

c – bajty

k – kilobajty

M – megabajty

G – gigabajty

Vyhľadajte súbory určitej veľkosti – rovné 30 MB

Ak chcete vyhľadávať, vyhľadajte všetky súbory 30 MB

nájsť / -size 30M

Vyhľadajte súbory väčšie ako zadaná veľkosť

find -size + 2M

Výkon

. /Downloads/ubuntu18043.iso
./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c

V aktuálnom adresári vyhľadajte súbory menšie ako 10 MB

Nájsť . -typ f-veľkosť -10M

Vyhľadajte súbory s veľkosťou od 100 do 200 MB

Pri hľadaní súborov v špecifickom rozsahu, napríklad medzi 100 a 200 MB

nájsť / -size + 100M -size -200M

Vyhľadajte adresáre väčšie ako 20 kB

nájsť / -typ d-veľkosť + 20k

Vyhľadajte prázdne súbory a adresáre.

súbory

find ./ -type f -size 0

alebo

nájsť ./ -typ f –empty

adresára

nájsť ./ -typ d –empty

Nájdite súbory podľa veku alebo času úpravy

Vyhľadajte súbory staršie ako n dní

find / path / -type f -name ‘* .txt’ -mtime +8

-Mtime +8 vyhľadá súbory txt, ktoré sú staršie ako 8 dní.

Podľa dátumu úpravy

Vyhľadajú sa súbory upravené za posledných 17 hodín

Nájsť . -mtime -17 -typ f

Vyhľadá adresáre upravené za posledných 10 dní

Nájsť . -mtime -10 -typ d

Vyhľadajte súbory na základe prístupu alebo úpravy

Vyhľadajte súbory na základe dátumu alebo času prístupu. To vám umožní zobraziť súbory, ku ktorým nebol alebo nebol prístup v určenom období.

Zobrazenie súborov, ku ktorým sa za posledných 10 dní nepristupovalo v domovskom adresári.

nájsť / domov-čas +10

Súbory prístupné presne pred 10 dňami

nájsť / domov – čas 10

Prístup za posledných 10 dní

find / home -atime -10

Vyhľadajte súbory upravené za posledných n dní

Môžete tiež vyhľadať súbory v adresári / home zmenené za posledných 10 dní pomocou príkazu;

find / home -mtime -10

Vyhľadajte súbory upravené v konkrétnom období.

Napríklad všetky súbory upravené pred 6 až 15 dňami v domovskom adresári.

find / home -type f -mtime +6 -mtime -15

Súbory a adresáre dostupné za posledných 10 minút

Ak chcete nájsť súbory prístupné za posledných 10 minút, použite voľbu -amin.

Nájsť . -amin -10 -typ f

Výkon

./.bash_history
./[Email protected]: ~ #

Adresáre prístupné za posledných 10 minút

Nájsť . -amin -10 -typ d

Vyhľadajte súbory zodpovedajúce konkrétnym povoleniam

syntax

$ find -perm mode

Ak režim predstavuje povolenie, ktoré je buď číselné, napríklad 644, 655, 700, 777 atď., Alebo písmená ako u = x, a = r + x atď..

Režim môžete určiť tromi rôznymi spôsobmi.

  1. Bez predpony, ak chcete nájsť súbory s presnými oprávneniami.
  2. S „-“ pre súbory, ktoré majú aspoň určené povolenie. Týmto sa vrátia súbory so zadanými, ako aj ďalšími vyššími oprávneniami.
  3. Použitie „/“ vyžaduje špecifikovanie vlastníka alebo skupiny s povolením na prístup k súboru.

Vyhľadajte súbory s povolením 777

nájsť -perm 777

Výkon

./ file1

Vyhľadajte súbory s najmenej 766
nájsť -perm -766

Výkon

./ file2
./ file1

Príkaz vyhľadá všetky súbory, v ktorých

  • Vlastník súboru má oprávnenie na čítanie, zápis a vykonávanie.
  • Skupina má oprávnenie na čítanie a zápis
  • Iní majú povolenie na čítanie / zápis

Vracia dva súbory, ktoré spĺňajú toto kritérium – file1 a file2. Súbory nemusia mať presné povolenia 766 a môžu mať ďalšie také dlhé, ale musia mať aspoň zadané.

Vyhľadajte súbory, ktoré je možné zapísať vlastníkom

Teraz pomocou znaku „/“ vyhľadáme súbory, ktoré je možné zapísať buď ich vlastníkom alebo skupinou, alebo inými.

nájsť -perm / 222
.
./ file2
./ soubor3
./ file1

Vyššie uvedené hľadá súbory, ktoré je možné zapísať buď ich vlastníkom, alebo skupinou.
Týmto sa vrátia súbory, ktoré sú zapisovateľné buď, ale nie nevyhnutne oboma. Ak chcete zobraziť súbory, v ktorých majú obidva oprávnenia na zápis, použite predponu -.

nájsť -perm -220

Výkon

./ file2
./ file1

Vyhľadajte súbory, ktoré vlastní používateľ

Vyhľadajte všetky súbory, ktoré vlastní Jack

nájsť / home -user jack

Výkon

/ Home / jack
/home/jack/examples.desktop
/home/jack/.gnupg
/home/jack/.gnupg/private-keys-v1.d
/home/jack/ans.cgi

Vyhľadajte konkrétne súbory, ktoré vlastní používateľ

Vyhľadajte všetky textové súbory, ktoré vlastní Jack

find / home -user jack -iname "*.TXT"

Výkon

/home/jack/docs/file32.txt

Vyhľadajte a zoznam súborov a adresárov spolu s ich oprávneniami

nájsť-meno "* .conf" | ls -l

Výkon

celkom 120
root root drwxr-xr-x 2 4096 31. decembra 13:19 záloha2
koreňový koreň drwxr-xr-x 2 4096 4. januára 11:57 Desktop
drwxr-xr-x 2 root root 4096 31. decembra 11:50 Dokumenty
drwxr-xr-x 2 root root 4096 Dec 31 12:27 Stiahnutie
-rw-r – r– 1 root root 0 Jan 4 12:02 file22.doc
drwxr-xr-x 2 root root 4096 4. januára 12:14 file23
-rw-r – r– 1 root root 0 január 4 12:23 file23.txt

Nájdite výsledky a postupujte podľa nich

V tejto časti sa pozrieme na to, ako môžete konať v prípade súborov, ktoré zodpovedajú vzoru zadanému v príkaze find.

Vyhľadajte súbory a zmeňte povolenia

Vyhľadajte a zmeňte povolenia určitých typov súborov. V našom prípade budeme pracovať so súbormi PHP s rôznymi povoleniami, ako je uvedené nižšie.

[Email protected]: ~ / ver $ ls -la

celkom 8
jack jack drwxrwxr-x 2 4096 3 január 14:11 .
jack jack drwxr-xr-x 8 4096 3 január 14:05 ..
-rwxr-xr-x 1 jack jack 0 Jan 3 14:06 ans.php
-rw-rw-r– 1 jack jack 0 január 3 14:11 base.php
-rwxr-xr-x 1 jack jack 0 Jan 3 14:06 query.php
-rw-rw-r– 1 jack jack 0 Jan 3 14:11 qust.php
-rwxr-xr-x 1 jack jack 0 Jan 3 14:06 text.php
-rw-rw-r– 1 jack jack 0 január 3 14:11 var.php

Teraz vyhľadáme všetky súbory PHP (vyššie) a ich povolenia nahradíme 755

nájsť ver -name "* php" -typ f -exec chmod 755 {};

Príkaz vyhľadá súbory PHP v adresári ver a potom nastaví ich oprávnenie na 755 (rwxr-xr-x)

výsledok

[Email protected]: ~ / ver $ ls -la
celkom 8
jack jack drwxrwxr-x 2 4096 3 január 14:11 .
jack jack drwxr-xr-x 8 4096 3 január 14:05 ..
-rwxr-xr-x 1 jack jack 0 Jan 3 14:06 ans.php
-rwxr-xr-x 1 jack jack 0 Jan 3 14:11 base.php
-rwxr-xr-x 1 jack jack 0 Jan 3 14:06 query.php
-rwxr-xr-x 1 jack jack 0 Jan 3 14:11 qust.php
-rwxr-xr-x 1 jack jack 0 Jan 3 14:06 text.php
-rwxr-xr-x 1 jack jack 0 Jan 3 14:11 varia.php

Vyhľadajte a zmeňte povolenia súborov a adresárov

Vyhľadajte súbory s oprávneniami 644 a zmeňte ich na oprávnenia 655

Nájsť . -typ f -perm 644 -exec chmod 655 {};

Môžete tiež hľadať adresáre s povoleniami 644 a nahradiť ich adresami 755.

Nájsť . -typ d -perm 644

Výkon

./ docs

Priečinok docs má 644 povolení

jack jack drwxrwxr-x 2 4096 Jan 3 12:45 dokumenty

Aby sme to nastavili na 755, bežíme

Nájsť . -typ d -perm 644 -exec chmod 755 {};

Teraz môžeme znova skontrolovať, čo presne 755

Nájsť . -typ d -perm 755

Výkon
.
./ docs

Zhora vidíme koreňové adresáre a adresáre dokumentov majú oprávnenie 755.

Príkaz Ls –la poskytuje nasledujúce podrobnosti

jack jack drwxr-xr-x 2 4096 3 január 12:45 dokumentov

Vyhľadajte a skopírujte súbory alebo adresáre

Vyhľadajte a skopírujte konkrétny súbor do adresára

Nižšie uvedený príkaz nájde súbor file22.txt a skopíruje ho do adresára ~ / tmp / images.

nájsť -inam file22.txt -exec cp {} ~ / tmp / images;

Vyhľadajte a skopírujte jeden typ súborov do adresára

Ak chcete nájsť súbory, ako sú obrázky s príponou jpg, v aktuálnom adresári a skopírovať ich na iné miesto, napríklad do priečinka s obrázkami, použite;

find -iname ‘* .jpg’ -exec cp {} ~ / tmp / images;

Nájdete a skopíruje všetky súbory jpg do priečinka ~ / tmp / images.

Nájdite a skopírujte jeden súbor do mnohých adresárov

Nájdite a skopírujte jeden do viacerých adresárov.

nájsť ~ / tmp / dir1 / ~ / tmp / dir2 / $ HOME / 3 / -maxdepth 0 -exec cp ~ / numeric / hci {};

Nájdete súbor hci a skopírujte ho do troch adresárov / tmp / dir1 / / tmp / dir2 / a $ HOME / 3 /

Vyhľadajte a presuňte súbory do iného adresára

Presunutie známeho súboru z adresára do druhého. Presunutie súboru universal.php;

nájsť ~ / folder / -type f -name universal.php -exec mv {} ~ / numeric /;

Vyhľadajte a presuňte súbory s určitou príponou do iného priečinka

nájsť ~ / numeric / -type f -name ‘* .php’ -exec mv {} ~ / folder /;

Vyhľadajte určité súbory a presuňte sa do konkrétneho iného priečinka

find -type f -name uni *. * -exec mv {} ~ / unifiles /;

Príkaz vyhľadá všetky súbory, ktorých názvy začínajú na uni a majú ľubovoľnú príponu. Potom ich presunie do adresára / unifiles /

Nájdite a presuňte súbory na základe veku

Vyhľadajte a presuňte súbory staršie ako určené dni na iné miesto, napríklad do archívu.

find / path / -type f -name ‘* .pdf’ -mtime +20 -exec mv {} / backup1 /;

Vyhľadajú sa súbory PDF staršie ako 20 dní a presunú sa do adresára backup1.

Vyhľadajte a odstráňte súbory a adresáre

Syntax na nájdenie a odstránenie súborov alebo adresárov v aktuálnom adresári je

Nájsť . -typ f -name "súbor na odstránenie" -exec rm -f {}; vymazať iba súbory alebo

Nájsť . -typ d -name "dir-to-delete" -exec rm -rf {}; vymazať iba adresáre

Vyhľadajte a odstráňte iba konkrétne súbory

Na vyhľadanie a vymazanie súborov začínajúcich til použite;

Nájsť . -typ f -name "til *" -exec rm {};

Nájsť a odstrániť adresáre začínajúce til

Nájsť . -typ d -name "til *" -exec rm {};

Odstráňte súbory aj adresáre

Nájsť . -názov "til *" -exec rm -rf {};

Týmto sa odstránia súbory aj adresáre počnúc písmenami til.

Odstrániť podľa prípony

Nižšie je uvedený spôsob, ako môžete vyhľadať a odstrániť všetky súbory txt v aktuálnom adresári. Nahraďte txt inou príponou, ako napríklad bak, pdf alebo inou, ktorú chcete odstrániť.

Nájsť . -typ f -name "*.TXT" -exec rm -f {};

Ak chcete, aby vás systém pred vymazaním každého súboru vyzval na potvrdenie, pridajte voľbu -i ako je uvedené nižšie.

Nájsť . -typ f -name "*.TXT" -exec rm -i {};

Výkon

rm: odstrániť normálny prázdny súbor ‘./File22.txt’? y
rm: odstrániť normálny prázdny súbor ‘./file22.txt’? y
rm: odstráňte normálny prázdny súbor ‘./file23.txt’?

V predvolenom nastavení -rm neodstráni adresáre a na zabezpečenie rekurzívneho odstránenia musíte použiť voľbu –r. Toto zaisťuje vymazanie prázdnych adresárov a adresárov obsahujúcich súbory. Voľba -f vynúti odstránenie a používa sa pre súbory aj adresáre.

Vyhľadajte a odstráňte súbory staršie ako n dní

Vyhľadajte a odstráňte záložné súbory staršie ako 20 dní z aktuálneho adresára.

Nájsť . -typ f – meno ‘* .bak’ -mtime +20 -exec rm {};

Týmto sa odstránia všetky súbory .bak staršie ako 20 dní.

Vyhľadajte a odstráňte iba adresáre

Vymazanie adresára s názvom dir22

Nájsť . -typ d-meno dir22 -exec rm -rf {};

Zaistite, aby sa zhodovali prípady názvu adresára alebo použite voľbu -iname.

Nájsť . -typ d -inam Dir22 -exec rm -rf {};

Odstraňuje Dir22 aj dir22

Pred vymazaním potvrďte voľbu -i.

Nájsť . -typ d -inam Dir22 -exec rm -rf -i {};

Výkon
rm: odstrániť adresár „./Dir22“? n
rm: odstrániť adresár „./dir22“? y

V našom prípade sme zadali n do adresára Dir22, ktorý sa neodstráni a y pre dir22, ktorý sa teraz odstráni..

Vyhľadajte a odstráňte prázdne súbory

Na nájdenie prázdnych súborov a ich automatické odstránenie môžete použiť ktorýkoľvek z nasledujúcich príkazov.

find ./ -type f -size 0 -exec rm -f {};

alebo
nájsť ./ -typ f -size 0 | xargs rm -f
alebo
find ./ -type f -size 0 –delete

Vyhľadajte a odstráňte prázdne adresáre

Na odstránenie prázdnych adresárov použijeme voľbu d.

find ./ -type d -empty -exec rmdir {};

Inou alternatívou je použitie odstránenia namiesto odstránenia.

nájsť ./ -typ d -empty -delete

Upozorňujeme, že vymazanie systémových alebo kritických súborov z počítača môže poškodiť operačný systém alebo aplikácie alebo viesť k strate dôležitých údajov.

Ak sa chcete vyhnúť náhodným vymazaniam, je najlepšie používať užívateľský účet typu non-root. Tiež sa uistite, že odstraňujete správne súbory, ktoré nie sú užitočné, a či máte zálohu všetkých vašich dátových súborov len pre prípad, že.

Čo bude ďalej?

Choďte do toho a vyskúšajte ich vo svojom laboratóriu alebo v prostredí NIE PRODUKCIA. Uvidíte, či môžete niektoré použiť na automatizáciu vyčistenia súborového systému pomocou Crontab. A aby ste zvládli Linux, pozrite sa na toto online kurz.

Tagy:

  • linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map