From C to Python by Ross Rheingans-Yoo
Sadržaj:
- Linux
find
naredbu Sintaksa - Pronalaženje datoteka po imenu
- Pronađite datoteke pomoću ekstenzije
- Pronađite datoteke prema vrsti
- Pronađite datoteke prema veličini
- Pronađite datoteke prema datumu izmjene
- Pronalaženje datoteka s dozvolama
- Pronalaženje datoteka od strane vlasnika
- Pronalaženje i brisanje datoteka
- Zaključak
Naredba
find
jedan je od najmoćnijih alata u arsenalu administratora sustava Linux. Pretražuje datoteke i mape u hijerarhiji direktorija na temelju izraza koji je korisnik dodijeljen i može izvoditi radnju određenu korisnikom na svakoj podudarnoj datoteci.
Naredbu
find
možete koristiti za pretraživanje datoteka i mapa na temelju njihovih dozvola, vrste, datuma, vlasništva, veličine i više. Također se može koristiti u kombinaciji s drugim alatima kao što su
grep
ili
sed
.
Linux
find
naredbu Sintaksa
Opća sintaksa za naredbu
find
je sljedeća:
find
- Atribut
options
kontrolira tretman simboličkih veza, opcija za uklanjanje pogrešaka i način optimizacijepath…
Atributpath…
definira početnu mapu ili mape u kojima će pretraživati datoteke. Atributexpression
sastoji se od opcija, obrasca pretraživanja i radnje razdvojene od strane operatora.
Za pretraživanje datoteka u direktoriju, korisnik koji poziva naredbu
find
mora imati dozvole za čitanje u toj mapi.
Pogledajmo sljedeći primjer:
find -L /var/www -name "*.js"
- Opcija
-L
(opcije) nalaže naredbufind
da slijedi simboličke veze./var/www
(put…) određuje direktorij koji će biti pretražen. (Izraz)-name "*.js
govorifind
za pretraživanje datoteka koje završavaju sa.js
(JavaScript datoteke).
Pronalaženje datoteka po imenu
Pronalaženje datoteka po imenu vjerojatno je najčešća upotreba naredbe
find
. Da biste datoteku pronašli prema njenom imenu, opcija
-name
slijedila je nazivu datoteke koju tražite.
Na primjer, za pretraživanje datoteke s nazivom
document.pdf
u direktoriju
/home/linuxize
upotrijebili biste sljedeću naredbu:
find /home/linuxize -type f -name document.pdf
Da biste pokrenuli pretraživanje bez
-iname
slova, promijenite opciju
-iname
s
-iname
:
find /home/linuxize -type f -iname document.pdf
Gornja naredba odgovara "Document.pdf", "DOCUMENT.pdf"..etc.
Pronađite datoteke pomoću ekstenzije
Pretraživanje datoteka ekstenzijom isto je kao i pretraživanje datoteka po imenu. Na primjer, da biste pronašli sve datoteke koje završavaju s
.log.gz
unutar
/var/log/nginx
direktorija koji možete koristiti:
find /var/log/nginx -type f -name '*.log.gz'
Važno je napomenuti da kada upotrebljavate zamjenski znak, morate ili navesti uzorak ili izbjeći simbol
*
sa zvjezdicom
*
sa nagibom
\
da se ljuska ne interpretira.
Da biste pronašli sve datoteke koje ne odgovaraju
*.log.gz
možete koristiti opciju
*.log.gz
. Na primjer, da biste pronašli sve datoteke koje ne završavaju u
*.log.gz
koji biste koristili:
find /var/log/nginx -type f -not -name '*.log.gz'
Pronađite datoteke prema vrsti
Ponekad ćete možda trebati potražiti određene vrste datoteka, poput uobičajenih datoteka, direktorija ili veza. U Linuxu je sve datoteka.
Za pretraživanje datoteka na temelju njihove vrste, koristite opciju
-type
i jedan od sljedećih deskriptora da odredite vrstu datoteke:
-
f
: redovna datotekad
: direktorijl
: simbolička vezac
: uređaji s znakovimab
: blok uređajap
: imenovana cijev (FIFO)s
: utičnica
Na primjer, da biste pronašli sve direktorije u trenutnoj radnoj mapi, upotrijebili biste:
find. -type d
Uobičajeni je primjer rekurzivna promjena dopuštenja datoteke web stranice na
644
i dozvole direktorija na
755
pomoću naredbe
chmod
:
find /var/www/my_website -type d -exec chmod 0755 {} ;
find /var/www/my_website -type f -exec chmod 0644 {} ;
Pronađite datoteke prema veličini
Da biste pronašli datoteke na temelju veličine datoteke, proslijedite parametar-veličine zajedno s kriterijima veličine. Za određivanje veličine datoteke možete koristiti sljedeće sufikse:
-
b
: 512-bajtni blokovi (zadano)c
: bajtoviw
: dvobajtne riječik
: KilobajteM
: MegabajtiG
: Gigabajti
Sljedeća naredba pronaći će sve datoteke od točno
1024
bajta unutar
/tmp
direktorija:
find /tmp -type f -size 1024c
Naredba za
find
također vam omogućuje pretraživanje datoteka većih ili manjih od određene veličine.
U sljedećem primjeru tražimo sve datoteke manje od
1MB
unutar trenutne radne mape. Primijetite minus
-
simbol prije vrijednosti veličine:
find. -type f -size -1M
find. -type f -size +1M
Možete čak i pretraživati datoteke unutar raspona veličine. Sljedeća naredba pronaći će sve datoteke između
1
i
2MB
:
find. -type f -size +1M -size 21M
Pronađite datoteke prema datumu izmjene
Naredba za
find
također može pretraživati datoteke na temelju njihove posljednje izmjene, pristupa ili promjene vremena.
Isto kao i kad pretražujete po veličini, upotrijebite simbole plus i minus za "veće od" ili "manje od".
Recimo da ste prije nekoliko dana izmijenili jednu od konfiguracijskih datoteka golubica, ali ste zaboravili koju. Sve datoteke možete lako filtrirati u
/etc/dovecot/conf.d
direktorijumu koji završava s
.conf
i modificirani su u posljednjih pet dana pomoću:
find /etc/dovecot/conf.d -name "*.conf" -mtime 5
Evo još jednog primjera filtriranja datoteka na temelju datuma izmjene pomoću opcije
-daystart
. Naredba u nastavku popisat će sve datoteke u
/home
imeniku koje su izmijenjene prije
30
ili više dana:
find /home -mtime +30 -daystart
Pronalaženje datoteka s dozvolama
Opcija
-perm
omogućuje vam pretraživanje datoteka na temelju dozvola za datoteku.
Na primjer, da biste pronašli sve datoteke s dozvolama od točno
775
unutar
/var/www/html
direktorija, upotrijebili biste:
find /var/www/html -perm 644
Možete numerički način prefiksirati s minusom
-
ili kosom crtom
/
.
Kad se kosa crta
/
koristi kao prefiks, tada najmanje jedna kategorija (korisnik, grupa ili drugi) mora imati najmanje odgovarajuće bitove da bi se datoteka mogla podudarati.
Razmotrite sljedeću primjeru naredbe:
find. -perm /444
Gornja naredba odgovarat će svim datotekama s dozvolama za čitanje postavljenim bilo za korisnika, grupu ili druge.
Ako se kao prefiks koristi minus
-
tada se datoteka mora podudarati s barem navedenim bitovima. Sljedeća naredba će pretraživati datoteke koje su vlasniku i grupi pročitali i dopustili pisanje i čitali ih drugi korisnici:
Pronalaženje datoteka od strane vlasnika
Da biste pronašli datoteke u vlasništvu određenog korisnika ili grupe, upotrijebite opcije
-user
i
-group
.
Na primjer, za pretraživanje svih datoteka i direktorija u vlasništvu korisnika
linuxize
pokrenuli biste:
find / -user linuxize
Evo primjera iz stvarnog svijeta. Recimo da želite pronaći sve datoteke u vlasništvu korisničkih
www-data
i promijeniti vlasništvo nad podudarnim datotekama iz
www-data
u
nginx
:
find / -user www-data -type f -exec chown nginx {} ;
Pronalaženje i brisanje datoteka
Da biste izbrisali sve podudarajuće datoteke, dodajte opciju
-delete
na kraj izraza podudaranja.
Obavezno koristite ovu opciju samo kad ste sigurni da se rezultat podudara s datotekama koje želite izbrisati. Uvijek je dobra ideja ispisati podudarne datoteke prije nego što koristite opciju
-delete
.
Na primjer, za
.temp
svih datoteka koje završavaju
.temp
iz
/var/log/
koju biste koristili:
find /var/log/ -name `*.temp` -delete
Koristite
-delete
opciju s krajnjim oprezom. Naredbeni redak nalazi se procjenjuje kao izraz i ako prvo
-delete
opciju
-delete
, naredba će izbrisati sve ispod početnih točaka koje ste naveli.
Kad je riječ o direktorijima,
find
možete izbrisati samo prazne direktorije isto kao i
rmdir
.
Zaključak
Pokazali smo vam kako koristiti naredbu
find
s različitim opcijama i kriterijima.
Ovaj bi vam članak trebao dati temeljno razumijevanje kako locirati datoteke na svojim Linux sustavima. Također možete posjetiti stranicu
find
man i pročitati o svim drugim moćnim opcijama naredbe
find
.
Kako stvoriti mysql bazu podataka na Linuxu putem naredbenog retka
Ovaj vodič objašnjava kako koristiti naredbeni redak za stvaranje MySQL ili MariaDB baza podataka.
Kako izbrisati mysql bazu podataka na Linuxu putem naredbenog retka
Ovaj vodič opisuje kako izbrisati (ili ispustiti) bazu podataka MySQL ili MariaDB kroz naredbeni redak.
Kako ukloniti datoteke i mape pomoću Linux naredbenog retka
U ovom ćemo vam vodiču pokazati kako pomoću naredbe rm ukloniti datoteke i mape putem primjera i objašnjenja najčešćih rm opcija.