Kako se koristi Find Command na Linuxu? 40 primjera uključenih

Nalaz je moćan alat naredbenog retka koji administratorima sustava omogućuje lociranje i upravljanje datotekama i mapama na temelju širokog raspona kriterija pretraživanja. Datoteke mogu pronaći prema njihovom imenu, njihovoj vrsti ili proširenju, veličini, dozvolama itd.


Pored lociranja datoteka i mapa, kombiniranje naredbe pronalaženja s drugima omogućuje vam da poduzmete mjere na rezultatima. Dodavanje opcije -exec omogućuje sysadminima da izvršavaju vanjske naredbe i izvršavaju radnje poput kopiranja, premještanja, brisanja ili promjene dopuštenja datoteka koje odgovaraju određenim kriterijima kao što su veličina, naziv itd..

U ovom ćemo članku započeti s objašnjenjem osnovnih naredbi pronalaska s primjerima. Ovo će vam pokazati kako pronaći datoteke i mape. Potom ćemo vam pokazati kako koristiti -exec opciju za djelovanje na datoteke ili mape na temelju njihove veličine, dozvola itd..

Opća sintaksa za naredbu find je

pronađite {path} {ime-datoteke ili datoteke za pretraživanje} {akcija za preuzimanje}

Gdje,

  • putanja određuje direktorij.
  • ime datoteke ili dir-to-search: naziv datoteke ili mape koju tražite
  • radnja koja se poduzima: primjerice kopiranje, brisanje, premještanje, itd.

U ovom ćemo udžbeniku objasniti kako locirati datoteke i direktorije koje odgovaraju određenim uzorcima. Također ćemo vidjeti kako izvoditi akcije na datotekama ili direktorijama u kojima se nalazi naredba find. Vodič se temelji na Ubuntuu, ali je primjenjiv na većinu distribucija i verzija Linuxa.

Contents

Pronađite datoteke i mape

Pronađite određene datoteke prema imenu ili proširenju

Da biste potražili određenu datoteku, iz korijena (/) pokrenite sljedeću naredbu. Naredba sadrži točno ime datoteke koju tražite.

pronaći . -name file22.txt

Izlaz

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

Imajte na umu da rezultati uključuju stazu. Ovo je važno ako ne znate direktorij u kojoj se datoteka nalazi ili kada se nalazi na više mjesta.

Možete potražiti i datoteku u drugoj mapi dok je još uvijek na trenutnom mjestu. U tom slučaju trebate unijeti put do direktorija u kojem želite pretraživati.

pronađite ./test -name file22.txt

Tražite određene datoteke u drugoj mapi

U našem slučaju potražit ćemo sve one koji počinju s datotekom slovima u direktoriju ispitivanja.

pronađi ./test -name datoteku *

Izlaz

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

Traži datoteke ekstenzijom

Za traženje datoteka s određenim nastavkom dodajte ga naredbi.

pronaći . -name * .txt

Izlaz

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

Pronađite datoteke i mape po imenu

Pomoću naredbe u nastavku potražite datoteke i mape koje počinju slovima qa. U našem računalu imamo datoteke qatree.txt i qa.txt kao i direktorij po imenu qa.

Ako izvršimo naredbu;

pronaći ./ -ime "K *"

Vraća sljedeći izlaz

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

Naredba vraća i datoteke i mape koje odgovaraju kriterijima pretraživanja. Da biste pronašli samo datoteke ili mape, morate to navesti u naredbi.

Pronađite samo datoteke ili mape

Koristite samo tipku za datoteke.

Samo datoteke

pronaći ./ -tip f -ime "K *"

Izlaz

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

Samo direktori

Dodajte opciju tipa d da biste locirali samo mape.

nađi ./ -tip d -ime "K *"

Izlaz

./ Home / K

Slučaj neosjetljiv pronađite naredbu

Sva pretraživanja s -name preklopnikom razlikuju velika i mala slova i neće dati rezultate s velikim slovima. Da biste dobili sve slučajeve, koristite opciju -iname.

nađi ./ -iname "K *"

Izlaz

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

Tražite datoteku iz više direktorija

Da biste pronašli datoteke u različitim mapama, u naredbu dodajte njihove staze. U našem slučaju provjerit ćemo u testnim i numeričkim imenicima.

pronađite ./test ./numeric -name file22.txt -tip f

Izlaz

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

Pronađite sve datoteke s različitim proširenjima iz svih mapa

Naredbu pronađite možete pronaći više datoteka koje dijele različita proširenja kao što su * .doc, * .txt * .pdf itd. To se može učiniti zasebno, jedno proširenje istodobno ili pomoću samo jedne naredbe koja uključuje sve željena proširenja.

pronaći . -tip f (-name "* .txt" -o -ime "* .pdf" -o -ime "* .doc" )

izlaz

./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

Pronađite datoteke s određenim tekstom

Ponekad želite pristupiti datoteci koja sadrži određeni tekst, ali ne može se prisjetiti njezinog naziva ili lokacije. Ova naredba omogućuje vam pronalaženje svih datoteka koje sadrže vaš ciljni tekst.

Za traženje svih datoteka koje sadrže riječ hiperkonvergencija “, upotrijebite;

pronaći / -tip f -exec grep -l -i "hyperconvergence" {};

Izlaz

/ Root / numerički / HCl
/ Root / HCIP

Opcija -i omogućava naredbu da ignorira slučajeve i naći će tekst bez obzira na velika ili mala slova, tj. Hiperkonvergenciju, hiperkonvergenciju itd..

Za traženje datoteka u određenom direktoriju, jednostavno ga dodajte naredbi

nađi ./numerički -tip f -exec grep -l -i "hyperconvergence" {};

Izlaz

./ Numerička / HCl

Pronalaženje datoteka i direktorija na temelju veličine

Možete pronaći sve datoteke ili mape koje su manje, jednake ili veće od određene veličine, unutar određenog raspona ili prazne. Upotrijebite odgovarajući format veličine ovisno o vrsti datoteka ili direktorija koje tražite.

Opcije veličine uključuju;

c – bajtovi

k – kilobajta

M – Megabajti

G – Gigabajti

Pronađite datoteke određene veličine – jednake 30 MB

Pretražite pronađite sve datoteke od 30 MB

pronađite / -u veličini 30M

Pronađite datoteke veće od određene veličine

pronađite-veličinu + 2M

Izlaz

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

Nađite datoteke manje od 10 MB u trenutnoj mapi

pronaći . -tip f-veličina -10M

Pronađite datoteke s veličinama između 100-200MB

Kad tražite datoteke unutar određenog raspona, kao što su između 100 i 200 MB

pronađi /-veličinu + 100M-veličinu -200M

Potražite imenike veće od 20kb

pronađi / vrstu d-veličine + 20k

Pronađite prazne datoteke i mape.

datoteke

nađi ./ -tip f-veličina 0

ili

nađi ./ -tip f –prazan

Katalozi

nađi ./ vrstu d –prazno

Pronađite datoteke prema dobi ili modifikaciji

Pronađite datoteke starije od n dana

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

-Mtime +8 tražit će txt datoteke starije od 8 dana.

Prema datumu izmjene

Ovo će tražiti datoteke modificirane u posljednjih 17 sati

pronaći . -mtime -17 -tip f

Potraga za direktorijima izmijenjenim u zadnjih 10 dana

pronaći . -mtime -10-tip d

Pronađite datoteke na temelju pristupa ili izmjene

Pronađite datoteke na temelju datuma ili vremena kojem pristupaju. To vam omogućava da vidite datoteke kojima je pristupio ili nisu pristupili u određenom razdoblju.

Da biste u početnom direktoriju vidjeli datoteke kojima niste pristupili u zadnjih 10 dana.

pronađi / dom – vrijeme +10

Datotekama je pristupio točno 10 dana

pronađite / kući – vrijeme 10

Pristupljeno u zadnjih 10 dana

pronaći / kući-vrijeme -10

Pronađite datoteke modificirane u posljednjih n dana

Datoteke također možete potražiti u / home direktorijumu izmijenjenom u zadnjih 10 dana pomoću naredbe;

pronaći / doma -mtime -10

Pronađite datoteke modificirane u određenom razdoblju.

Na primjer, sve datoteke modificirane prije 6 i 15 dana u matičnom imeniku.

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

Datoteke i mape kojima se pristupa zadnjih 10 minuta

Da biste pronašli datoteke kojima je pristupio u zadnjih 10 minuta, koristite opciju -amin.

pronaći . -amin -10 -tip f

Izlaz

./.bash_history
./[E zaštićeni]: ~ #

Katalozi kojima se pristupa zadnjih 10 minuta

pronaći . -amin -10-tip d

Nađite datoteke koje odgovaraju određenim dozvolama

Sintaksa

$ find -perm način

Gdje je način dopuštenje bilo brojčano kao što su 644, 655, 700, 777, itd., Ili slova poput u = x, a = r + x, itd..

Način možete odrediti na sljedeća tri različita načina.

  1. Bez prefiksa kada želite pronaći datoteke s točno navedenim dozvolama.
  2. Sa “-” za datoteke s barem navedenim dopuštenjem. To vraća datoteke s navedenim, kao i dodatna veća dopuštenja.
  3. Upotreba “/” zahtijeva specificiranje vlasnika ili grupe s dopuštenjem datoteke.

Pronađite datoteke s dopuštenjem 777

pronaći -perm 777

Izlaz

./ file1

Pronađite datoteke s najmanje 766
nađi -perm -766

Izlaz

./ file2
./ file1

Naredba traži sve datoteke u kojima je

  • Vlasnik datoteke ima dozvole za čitanje / pisanje / izvršavanje.
  • Grupa ima dozvole za čitanje / pisanje
  • Ostali imaju dozvolu za čitanje / pisanje

Kao takav, vraća dvije datoteke koje ispunjavaju ovaj kriterij – file1 i file2. Datoteke ne moraju imati točna 766 dozvola, a mogu imati i dodatna, ali moraju imati barem navedena.

Pronađite datoteke koje može zapisati vlasnik

Sada ćemo koristiti “/” za traženje datoteka koje može upisati njihov vlasnik, grupa ili drugi.

pronaći -perm / 222
.
./ file2
./ file3
./ file1

Navedeno traži datoteke koje može zapisati ili njihov vlasnik ili grupa.
Ovo vraća datoteke koje mogu pisati oba, ali ne nužno i obje. Da biste vidjeli datoteke, u kojima obje imaju dozvola za upis, koristite prefiks -.

pronaći -perm -220

Izlaz

./ file2
./ file1

Pronađite datoteke u vlasništvu korisnika

Pronađite sve datoteke u vlasništvu Jacka

find / home -korištenje

Izlaz

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

Pronađite određene datoteke u vlasništvu korisnika

Pronađite sve tekstualne datoteke u vlasništvu Jacka

pronađi / home -user utičnica -iname "* .txt"

Izlaz

/home/jack/docs/file32.txt

Pronađite i popisite datoteke i mape, zajedno s njihovim dozvolama

find -name "* .conf" | ls -l

Izlaz

ukupno 120
drwxr-xr-x 2 korijen korijena 4096 prosinac 31 13:19 sigurnosna kopija2
drwxr-xr-x 2 korijen korijena 4096 4. siječnja 11:57 Desktop
drwxr-xr-x 2 korijen korijena 4096 prosinac 31. 11:50 Dokumenti
drwxr-xr-x 2 korijen korijena 4096 prosinca 31 12:27 Preuzimanja
-rw-r – r– 1 korijen korijena 0 4. siječnja 12:02 file22.doc
drwxr-xr-x 2 korijen korijena 4096 4. siječnja 12:14 file23
-rw-r – r– 1 korijen korijena 0 4. siječnja 12:23 file23.txt

Pronađite i djelujte na rezultatima

U ovom ćemo dijelu pogledati kako možete djelovati na datoteke koje se podudaraju s uzorkom navedenim u naredbi find.

Pronađite datoteke i promijenite dozvole

Pronađite i promijenite dopuštenja određenih vrsta datoteka. U našem ćemo slučaju raditi s PHP datotekama s različitim dopuštenjima, kao što je prikazano u nastavku.

[E zaštićeni]: ~ / ver $ ls -la

ukupno 8
drwxrwxr-x 2 utičnica utičnica 4096 3. siječnja 14:11 .
drwxr-xr-x 8 utičnica utičnica 4096 3. siječnja 14:05 ..
-rwxr-xr-x 1 utičnica utičnica 0 3. siječnja 14:06 ans.php
-rw-rw-r– 1 utičnica utičnica 0 3. siječnja 14:11 base.php
-rwxr-xr-x 1 utičnica utičnica 0 3. siječnja 14:06 query.php
-rw-rw-r– 1 utičnica utičnica 0 3. siječnja 14:11 qust.php
-rwxr-xr-x 1 utičnica utičnica 0 3. siječnja 14:06 text.php
-rw-rw-r– 1 utičnica utičnica 0 3. siječnja 14:11 vari.php

Sada ćemo potražiti sve PHP datoteke (gore) i zamijeniti njihova dopuštenja sa 755

pronaći ver-ime "* .php" -upišite f -exec chmod 755 {};

Naredba traži PHP datoteke u ver verziji, a zatim postavlja njihovo dopuštenje na 755 (rwxr-xr-x)

Rezultati

[E zaštićeni]: ~ / ver $ ls -la
ukupno 8
drwxrwxr-x 2 utičnica utičnica 4096 3. siječnja 14:11 .
drwxr-xr-x 8 utičnica utičnica 4096 3. siječnja 14:05 ..
-rwxr-xr-x 1 utičnica utičnica 0 3. siječnja 14:06 ans.php
-rwxr-xr-x 1 priključak za priključak 0 3. siječnja 14:11 base.php
-rwxr-xr-x 1 utičnica utičnica 0 3. siječnja 14:06 query.php
-rwxr-xr-x 1 utičnica utičnica 0 3. siječnja 14:11 qust.php
-rwxr-xr-x 1 utičnica utičnica 0 3. siječnja 14:06 text.php
-rwxr-xr-x 1 utičnica utičnica 0 3. siječnja 14:11 vari.php

Pronađite i promijenite dopuštenja datoteka i direktorija

Pronađite datoteke s 644 dozvola i promijenite ih na 655 dopuštenja

pronaći . -tip f -perm 644 -exec chmod 655 {};

Možete potražiti i direktorije s 644 dozvola i zamijeniti ih sa 755.

pronaći . -tip d -perm 644

Izlaz

./ dokumenti

Mapa dokumenata ima 644 dozvole

drwxrwxr-x 2 utičnica utičnica 4096 3. siječnja 12:45 dok

Da ga postavimo na 755, pokrećemo

pronaći . -tip d -perm 644 -exec chmod 755 {};

Sada možemo ponovno provjeriti da vidimo točno točno 755

pronaći . -tip d -perm 755

Izlaz
.
./ dokumenti

Odozgo vidimo korijen i direktoriju dokumenata koji imaju 755 dopuštenja.

Naredba Ls –la daje sljedeće detalje

drwxr-xr-x 2 utičnica utičnica 4096 3. siječnja 12:45 dok

Pronađite i kopirajte datoteke ili mape

Pronađite i kopirajte određenu datoteku u direktorij

Naredba ispod pronaći će datoteku file22.txt i kopirati je u mapu ~ / tmp / images.

pronaći -iname file22.txt -exec cp {} ~ / tmp / images;

Pronađite i kopirajte jednu vrstu datoteka u direktorij

Da biste pronašli datoteke kao što su slike s nastavkom jpg u trenutnom direktoriju i kopirali ih na drugo mjesto poput mape slika, koristite;

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

Ovo će pronaći i kopirati sve jpg datoteke u mapu ~ / tmp / images.

Pronađite i kopirajte jednu datoteku u mnoge imenike

Pronađite i kopirajte jednu u više mapa.

pronađi ~ / tmp / dir1 / ~ / tmp / dir2 / $ HOME / 3 / -maxdepth 0 -exec cp ~ / numerički / hci {};

Ovo će pronaći datoteku hci datoteke i kopirati je u tri direktorija / tmp / dir1 / / tmp / dir2 / i $ HOME / 3 /

Pronađite i premjestite datoteke u drugi direktorij

Za premještanje poznate datoteke iz mape u drugu. Za premještanje datoteke Universal.php;

pronađi ~ / folder / -type f -name Universal.php -exec mv {} ~ / numerički /;

Pretražite i premjestite datoteke s određenim nastavkom u drugu mapu

pronađi ~ / numerički / -tip f -name ‘* .php’ -exec mv {} ~ / mapa /;

Pronađite određene datoteke i premjestite u određenu drugu mapu

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

Naredba traži sve datoteke s imenima koja počinju s uni i imaju bilo kakvo proširenje. Zatim ih premješta u mapu / unifiles /

Pronađite i premjestite datoteke na temelju dobi

Pronađite i premjestite datoteke starije od određenih dana na drugo mjesto kao što je arhiva.

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

Ovo će tražiti pdf datoteke starije od 20 dana i premjestiti ih u mapu backup1.

Pronađite i izbrišite datoteke i mape

Sintaksa za pronalaženje i uklanjanje datoteka ili mapa u trenutnom direktoriju je

pronaći . -tip f-ime "datoteka za brisanje" -exec rm -f {}; izbrisati samo datoteke ili

pronaći . -tip d-ime "dir za brisanje" -exec rm -rf {}; brisanje samo mapa

Pronađite i izbrišite samo određene datoteke

Za pronalaženje i brisanje datoteka koje počinju s til, upotrijebite;

pronaći . -tip f-ime "til *" -exec rm {};

Pronalaženje i brisanje mapa koje počinju s til

pronaći . -tip d-ime "til *" -exec rm {};

Uklonite datoteke i mape

pronaći . -Ime "til *" -exec rm -rf {};

Ovo će ukloniti i datoteke i mape počevši od slova do.

Izbriši proširenjem

Ispod je kako možete pronaći i izbrisati sve txt datoteke u trenutnoj mapi. Zamijenite txt drugim nastavkom poput bak, pdf ili bilo kojeg drugog koji želite ukloniti.

pronaći . -tip f-ime "* .txt" -exec rm -f {};

U slučaju da želite da vas sustav zatraži da potvrdite prije brisanja svake datoteke, dodajte opciju -i kao niže.

pronaći . -tip f-ime "* .txt" -exec rm -i {};

Izlaz

rm: ukloni redovnu praznu datoteku ‘./File22.txt’? y
rm: ukloni redovnu praznu datoteku ‘./file22.txt’? y
rm: ukloni redovnu praznu datoteku ‘./file23.txt’?

-Rm po zadanom neće ukloniti direktoriju i trebate upotrijebiti opciju -r da biste osigurali rekurzivno uklanjanje. To osigurava brisanje praznih direktorija i onih koji sadrže datoteke. Opcija -f prisiljava na uklanjanje i koristi se i za datoteke i mape.

Pronađite i izbrišite datoteke starije od n dana

Pronađite i izbrišite datoteke sigurnosnih kopija starijih od 20 dana iz trenutnog imenika.

pronaći . -tip f -name ‘* .bak’ -mtime +20 -exec rm {};

Ovo će izbrisati sve .bak datoteke starije od 20 dana.

Pronađite i izbrišite samo direktorije

Za brisanje mape koja se zove dir22

pronaći . -tip d -name dir22 -exec rm -rf {};

Provjerite odgovaraju li slučaju naziva direktorija ili koristite opciju -iname.

pronaći . -tip d -iname Dir22 -exec rm -rf {};

Uklanja i Dir22 i dir22

Za potvrdu prije brisanja koristite opciju -i.

pronaći . -tip d -iname Dir22 -exec rm -rf -i {};

Izlaz
rm: ukloni mapu ‘./Dir22’? n
rm: ukloni mapu ‘./dir22’? y

U našem slučaju upisali smo n za direktorij Dir22 koji neće biti izbrisan i y za dir22 koji će sada biti uklonjen.

Pronađite i uklonite prazne datoteke

Možete koristiti bilo koju od sljedećih naredbi za pronalaženje praznih datoteka i njihovo automatsko brisanje.

nađi ./ -tip f -size 0 -exec rm -f {};

ili
nađi ./ -tip f-veličina 0 | xargs rm -f
ili
pronađi ./ -tip f -s veličina 0 – obriši

Pronađite i uklonite prazne direktorije

Za uklanjanje praznih direktorija upotrijebit ćemo opciju d.

nađi ./ -tip d -empty -exec rmdir {};

Druga je mogućnost upotreba brisanja umjesto uklanjanja.

pronađi ./ -tip d -empty -delete

Imajte na umu da brisanje sistemskih ili kritičnih datoteka s vašeg računala može oštetiti operativni sustav ili aplikacije ili dovesti do gubitka vaših važnih podataka.

Da biste izbjegli slučajna brisanja, najbolja je praksa koristiti korisnički račun koji nije korijen. Isto tako, osigurajte da brišete prave datoteke koje nisu korisne i da imate sigurnosnu kopiju svih vaših podataka za svaki slučaj.

Što je sljedeće?

Samo napred i isprobajte ih u svom laboratoriju ili NON PRODUCTION okolišu. Pogledajte možete li ih koristiti za automatizaciju čišćenja datotečnog sustava pomoću Crontaba. A, da biste savladali Linux, provjerite ovo online tečaj.

OZNAKE:

  • 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