mkdir
Za kreiranje direktorijuma koristi se komanda mkdir. Ona prihvata da se istovremeno
navede vise imena direktorijuma za kreiranje. Kao sto je to bio slucaj sa fajlovima,
i za kreiranje direktorijuma koriste se relativno i apsolutno ime puta. Da biste
mogli da kreirate direktorijum, morate da imate dozvolu za pisanje u njegov
"roditeljski" direktorijum. UNIX koristi tekucu postavku dozvola da
postavi dozvolu za direktorijum.
U sledecoj listi navedeni su indikatori koji mogu da se koriste sa mkdir komandom:
-p da se svi direktorijumi kreiraju u imenu puta specificiranog direktorijuma,
ukoliko ne postoje
-m dozvola koja se specificira dozvola za direktorijum koji treba da se kreira.
Primeri
Ako je Vas tekuci direktorijum /u/testuser
mkdir temp
kreirace direktorijum po imenu temp, koji ce se nalaziti u direktorijumu /u/testuser,
cije je apsolutno ime puta /u/testuser/temp.
mkdir /u/testuser/temp
imate isto dejstvo kao i prethodna komanda.
mkdir ../temp
moze da se upotrebi da se kreira direktorijum /u/temp. Ovde smo kao deo relativnog
imena puta koristili .. (dve uzastopne tacke), da naznacimo da ce se direktorijum
temp kreirati u direktorijumu koji se nalazi za jedan nivo vise, odnosno u direktorijumu
/u.
Koristite komandu da kreirate testdirl i testdir2 u tekucem direktorijumu:
mkdir testdirl /u/testuser/temp/testdir2
Ovom komandom kreirace se testdirl u tekucem direktorijumu i testdir2 u /u/testuserltemp
(pod pretpostavkom da postoji). U navedenom primeru testdiri koristi relativno,
a /u/testuserltemp/testdir2 apsolutno ime puta.
Ukoliko direktorijum testdir vec postoji, kada pokusate da ga ponovo kreirate,
dobicete poruku slicnu sledecoj:
mkdir: cannot create testdir.
testdir: File exists
Ako hocete da u okviru tekuceg direktorijuma kreirate direktorijum testdir i
istovremeno mu dodelite dozvolu za pristup 770, izvrsite komandu:
mkdir -m 770 testdir
Ako hocete da kreirate direktorijum testdir u tekucem direktorijumu i poddirektorijum
temp u direktorijumu testdir, kreirajte ih jednom komandom na sledeci nain:
mkdir -p testdir/temp rmdir
Kada vise nemate nameru da koristite neki direktorijum, ili hodete da ga uklonite,
jer nemate slobodnog prostora, upotrebite komandu rmdir. Direktorijum mozete
da uklonite samo ako je prazan, odnosno pod uslovom da su svi fajlovi i poddirektorijumi
koji se u njemu nalaze prethodno uklonjeni. Kao argumente za rmdir komandu mozete
da navedete vise imena direktorijuma. Da bi Vam bilo dozvoljeno da uklonite
direktorijum, morate da imate dozvolu za pisanje u "roditeljski" direktorijum.
Sledeci indikator moze da se koristi sa rmdir komandom:
- p za uklanjanje svih direktorijuma koji se nalaze u specificiranom imenu puta.
Primeri
Ako Vas tekuci direktorijum /u/testuser sadrzi poddirektorijum temp, za uklanjanje
tog poddirektorijuma koristite komandu:
rmdir temp
Ukoliko direktorijum temp nije prazan, dobicete poruku slicnu sledecoj:
rmdir: Directory temp is not empty.
Pretpostavimo da se nalazite u direktorijumu /u/testuser, koji sadrzi poddirektorijum
testdir, pri cemu poddirektorijum testdir sadrzi poddirektorijum temp. da biste
uklonili oba, izvrsite komandu (pod uslovom da su uklo-njeni svi fajlovi i direktorijumi
koji se nalaze u okviru njih):
rmdir -p testdir/temp
Komande za dobijanje informacija o fajlovima
U UNIX-u svaki fajl, ili direktorijum, ima nekoliko pridruzenih atributa. Postoji
nekoliko komandi za trazenje informacija o ovim atributima, pomocu kojih atributi
mogu da se obraduju.
ls
Komanda ls moze da se koristi za postavljanje pitanja o razlicitim atributima
jednog, ili vise fajlova, ili direktorijuma. Morate da imate dozvolu za citanje
direktorijuma da biste mogli da koristite ls komandu za taj direktorijum i fajlove
u njemu. Komanda is generise izlaz na standardnom izlazu, koji moze da se preusmeri
u fajl, pomocu UNIX-ovog operatora > za preusmerenje.
U komandi ls mozete da navedete ime jednog, ili vise fajlova, ili direktorijuma.
imena fajlova i direktorijuma su opciona. Ukoliko ih ne navedete, UNIX ce obraditi
direktorijum.PO defaultu se lista fajlova u direktorijumu sortira po imenu fajla.
Redosled sortiranja mozete da izmenite, upotrebom indikatora, o kojima ce kasnije
biti reci.
Trebalo bi da imate u vidu da fajlovi cija imena pocinju . (tackom) nece biti
obradeni, ukoliko u ls komandi ne upotrebite -a indikator. To znaci da upisi
. (jedna tacka) i .. (dve uzastopne tacke) nece biti obradeni po defaultu.
Navodimo listu nekih indikatora koji mogu da se koriste sa ls komandom:
- A za listanje svih upisa u direktorijum, izuzev . (jedna tacka) i .. (dve
uzastopne tacke)
- a za listanje svih upisa u direktorijum, ukljucujuci i skrivene fajlove -
imena fajlova pocinju . (tackom).
- b za prikazivanje karaktera koji ne mogu da se ispisu; oni se prikazuju oktalnim
(nnn) sistemom oznacavanja
- c za koriscenje vremena poslednje modifikacije i-cvora; kada se koristi sa
-t indikatorom, izlaz je sortiran po vremenu poslednje modifikacije i-cvora,
a kada se koristi sa -1 indikatorom, prikazano vreme predstavlja poslednje vreme
modifikacije i-cvora (ovaj indikator mora da se koristi sa -t ili -1 indikatorom)
- C za vertikalno sortiranje izlaza za format sa vise kolona; ovo je default
nacin kada se izlaz upucuje na terminal
- d da se prikazu samo informacije koje se odnose na navedeni direktorijum;
po defaultu se prikazuju i informacije o fajlovima i direktorijumima unutar
tog direktorijuma
- e da se za svaki navedeni fajl, ili direktorijum prikazu sledece informacije:
1. dozvola pridruzena fajlovima i direktorijumima
2. broj linkova
3. vlasnik
4. grupa
5. velicina (u bajtovima)
6. vreme poslednje modifikacije
7. ime svakog fajla. Ukoliko se radi o posebnom fajlu, polje za velicinu sadrzi
brojeve glavnog (major) i podredenog (minor) uredaja. Ako je fajl simbolicki
link, ime puta za'linkovan-sa fajl ispisuje se tako da mu prethodi -> (znak
minus iza koga sledi znak'vece od'). Prikazuju se atributi simbolickog linka.
- f za ispisivanje svih imena za svaki direktorijum naveden u parametru za direktorijum;
ovaj indikator iskljucuje indikatore -1, -t, - s, - r i ukljucuje indikator
-a (redosled ispisivanja je redosled po kome se upisi pojavljuju u direktorijumu).
- F da se ispred razlicitih tipova fajlova stave specijalni karakteri, na sledeci
nacin:
1. / (kosa crta) posle svakog direktorijuma
2. * (asterisk) ako je fajl izvrsni fajl
3. =(znak jednako) ako je fajl socket
4. ; (znak za pipe) ako je fajl FIFO fajl
5. @ (znak at) za simbolicki link
- g prikazuje sledece informacije o fajlovima i direktorijumima:
1. dozvola
2. broj linkova
3. grupa
4. velicina (u bajtovima)
5. vreme poslednje modifikacije
- i da se za svaki fajl prikaze broj i-cvora u prvoj koloni izvestaja
- l da se prikazu sledece informacije o navedenim fajlovima i direktorijumima:
1. dozvola
2. broj linkova
3. vlasnik
4. grupa
5. velicina (u bajtovima)
6. vreme poslednje modifikacije
- m da se izlaz prikaze u formatu sa zarezima
- n da se za navedene fajlove i direktorijume prikazu sledece informacije:
1. dozvola
2. broj linkova
3. id vlasnika
4. id grupe
5. velicina (u bajtovima)
6. vreme poslednje modifikacije
- o da se za navedene fajlove i direktorijume prikazu sledece informacije:
1. dozvola
2. broj linkova
3. id vlasnika
4. velicina (u bajtovima)
5. vreme poslednje modifikacije
- p da se stavi kosa crta (/) iza svakog imena direktorijuma
- q da se prikazu karakteri koji se ne vide, a nalaze se u imenima fajlova,
kao sto je ? (znak.pitanja)
- r da se obrne redosled sortiranja ukoliko lista treba da se prikaze po redosledu
imena, prikazace se po obrnutom redosledu imena, a ako treba da se prikaze po
redosledu opadanja vremena (koriscenjem -t indikatora), gde se prvo prikazuje
poslednje vreme, prikazace se po rastucem redosledu vremena, gde ce se prvo
prikazati "najstarije" vreme
- R da se rekurzivno izlistaju svi poddirektorijumi koji se nalaze u navedenom
direktorijumu
- s da se prikaze velicina fajlova i direktorijuma u kilobajtima
- t da se upisi sortiraju po vremenu poslednje modifikacije (prvo se prikazuje
poslednji), umesto po imenu
- u da se koristi vreme poslednjeg pristupa, umesto vremena poslednje modifikacije;
ako se koristi sa -1, prikazuje se vreme poslednjeg pristupa, umesto vremena
poslednje modifikacije; a ako se koristi sa -t, izlaz se sortira po vremenu
poslednjeg pristupa, umesto po vremenu poslednje modifikacije (ovaj indikator
mora da se koristi sa indikatorima -1 i -t)
- x za horizontalno sortiranje izlaza u formatu sa vise kolona
- 1 da se u izlazu prikaze jedan upis po redu.
Informacije koje o dozvolama prikazuje ls komanda, u slucaju kada se koriste
izvesni indikatori, kao sto je -1, sastoje se od 10 karaktera. Njihov detaljan
opis je sledeci:
Byte 1: d oznacava direktorijum, b poseban blok fajl, c poseban karakter fajl,
1 simbolicki link, p oznacava poseban fajl tipa prvi-ulazi, prvi-izlazi (FIFO),
s lokalni socket, i obican fajl (na primer, fajl koji sadrzi tekst)
Byte 2: r - ako je vlasniku dodeljena dozvola za Citanje, - (crta) - ako vlasniku
nije dodeljena dozvola za citanje
Byte3: w - ako je vlasniku dodeljena dozvola za pisanje, - (crta) - ako vlasniku
nije dodeljena dozvola za pisanje
Byte4: x - ako je vlasniku dodeljena dozvola za izvrsavanje, - (crta) - ako
vlasniku nije dodeljena dozvola za izvrsavanje, s - ako fajl ima set-user-ID
nacin (mode)
Byte5: r - ako je grupi dodeljena dozvola za citanje, - (crta) - ako grupi
nije dodeljena dozvola za citanje
Byte6: w - ako je grupi dodeljena dozvola za pisanje, - (crta) - ako grupi
nije dodeljena dozvola za pisanje
Byte7: x - ako je grupi dodeljena dozvola za izvrsavanje, - (crta) - ako grupi
nije dodeljena dozvola za izvrsavanje, s - ako fajl ima setgroup-ID nain (mode).
Byte8: r - ako je ostalima dodeljena dozvola za citanje, - (crta) - ako ostalima
nije dodeljena dozvola za citanje
Byte9: w - ako je ostalima dodeljena dozvola za pisanje, - (crta) - ako ostalima
nije dodeljena dozvola za pisanje
Bytel0: x - ako je ostalima dodeljena dozvola za izvrgavanje, - (crta) - ako
ostalima nije dodeljena dozvola za izvrsavanje.
Kada se radi o fajlu, dozvola za izvrsavanje znaci da je fajl izvrsljiv. Medutim,
kada se radi o direktorijumu, dozvola za izvrsavanje znaci da mozete da pretraiujete
navedeni direktorijum, tragajuci za jednim, ili vise fajlova.
Primera
Pretpostavimo da su sledeci fajlovi i direktorijumi prisutni u tekucem direktorijumu:dot1,
test1, test2, test3 i test4. Takode, pretpostavimo da je test2 direktorijum.
Najjednostavniji oblik ls komande moze da se upotrebi da bi se dobila lista
fajlova i direktorijuma, koji se nalaze u tekucem direktorijumu:
ls
testl test2 test3 test4 test5
U ovoj listi ne prikazuje se upis u direktorijum . dotl, zato sto je fajl .
dot1 skriveni fajl. Da bi se prikazali svi upisi, ukljucujuci i skrivene fajlove,
pozovite komandu:
ls -a
. .. .dot1 test1 test2 test3 test4 test5
Gornja lista ne prikazuje informacije o upisima. Da biste dobili detaljnu listu
svih fajlova i direktorijuma, pozovite komandu sa -a indikatorom:
ls -la
total 56
drwxrwx--- 3 testuser author 3072 Nov 24 17:35 .
drwxr-xr-x 36 root system 2048 Nov 23 19:51 ..
-rw-r--r-- 1 testuser author 0 Nov 24 14:54 .dotl
-rw-r--r-- 1 testuser author 10 Nov 24 17:36 testl
drwxr-xr-x 2 testuser author 512 Nov 24 17:32 test2
-rw-r--r-- 1 testuser author 0 Nov 24 14:58 test3
-rw-r--r-- 1 testuser author 0 Nov 24 17:33 test4
-rw-r--r-- 1 testuser author 11885 Nov 24 11:50 test5
Koriscenje indikatora -a ima za posledicu prikazivanje dva posebna upisa, koji
su prisutni u svim direktorijumima:. (jedna tacka), kojom se oznacava navedeni
direktorijum, i .. (dve uzastopne tacke), kojima se oznacava "roditeljski"
direktorijum.
Ukoliko hocete da imate samo listu direktorijuma, pozovite komandu sa -d indikatorom:
ls -ald
drwxrwx--- 3 testuser author 3072 Nov 24 17:15 .
Kao sto ste mogli da vidite u prethodnim primerima, fajlovi i direktorijumi
u listi poredani su po imenu. Ukoliko hocete da dobijete listu upisa u direktorijum,
koji su poredani po vremenu poslednje modifikacije, da biste videli sta je bilo
poslednje na cemu ste radili, pozovite komandu sa -t indikatorom:
ls -lat
total 56
drwxrwx--- 3 testuser author 3072 Nov 24 17:37 .
-rw-r--r-- 1 testuser author 10 Nov 24 17:36 testl
-rw-r--r-- 1 testuser author 0 Nov 24 17:33 test4
drwxr-xr-x 2 testuser author 512 Nov 24 17:32 test2
-rw-r--r-- 1 testuser author 0 Nov 24 14:58 test3
-rw-r--r-- 1 testuser author 0 Nov 24 14:54 .dot1
-rw-r--r-- 1 testuser author 11885 Nov 24 11:50 test5
drwxr-xr-x 36 root system 2048 Nov 23 19:51 ..
Sve do sada nismo u ls komandi naznacili ime fajla, ili direktorijuma. Ukoliko
hocete da trazite sve upise cije ime pocinje sa test, na sledeci nacin navedite
test* za ime upisa:
ls -la test*
-rw-r.-r-- 1 testuser author 10 Nov 24 17:36 testl
-rw-r.-r-. 1 testuser author 0 Nov 24 14:58 test3
-rw-r--r-- 1 testuser author 0 Nov 24 17:33 test4
-rw-r--r-- 1 testuser author 11885 Nov 24 11:50 tests
test2:
total 16
drwxr-xr-x 2 testuser author 512 Nov 24 17:32 .
drwxrwx--- 3 testuser author 3072 Nov 24 17:41 ..
-rw-r--r-- 1 testuser author 0 Nov 24 17:45 test2l
-rw-r--r-- 1 testuser author 0 Nov 24 14:58 test22
Mozete da zapazite da upisi . (jedna tacka), .. (dve uzastopne tacke) i .dotl
ovde nisu prikazani, zbog toga sto dzoker znak * (asterisk) ne odgovara karakteru
. (tacka).
Ako hocete da dobijete listu u kojoj su fajlovi i direktorijumi iz tekuceg direktorijuma
odvojeni zarezima, pozovite komandu sa -m indikatorom:
ls -am
dotl, testl, test2, test3, test4, test5
Ukoliko hocete da dobijete listu upisa u kojima ce direktorijumi biti oznaceni
sa / (kosom crtom), izvrsite komandu sa -p indikatorom:
ls -ap
/ testl test4
/ test2/ test5
.dotl test3
Izlaz slican ovom, ali sa vise informacija, moze da se dobije kada se koristi
-F indikator. Koriscenjem indikatora -F, dobija se prikaz u kome su oznaceni
izvrsni fajlovi, simbolicki linkovi i tako dalje.
Ako hocete da dobijete listu upisa poredanu po obrnutom redosledu imena, pozovite
komandu sa -r indikatorom:
ls -rla
total 56
-rw-r--r-- 1 testuser author 11885 Nov 24 11:50 test5
-rw-r--r-- 1 testuser author 0 Nov 24 17:33 test4
-rw-r--r-- 1 testuser author 0 Nov 24 14:58 test3
drwxr-xr-x 2 testuser author 512 Nov 24 17:32 test2
-rw-r--r-- 1 testuser author 10 Nov 24 17:36 testl
-rw-r--r-- 1 testuser author 0 Nov 24 14:54 .dotl
drwxr-xr-x 36 root system 2048 Nov 23 19:51 ..
drwxrwx--- 3 testuser author 3072 Nov 24 18:00 .
Da biste dobili listu svih fajlova koji se nalaze u tekucem direktorijumu,
ukljucujuci i fajlove koji se nalaze u svim poddirektorijumima, pozovite komandu
sa -R indikatorom:
ls -lR
total 40
-rw-r--r-- 1 testuser author 10 Nov 24 17:36 testl
drwxr-xr-x 2 testuser author 512 Nov 24 17:32 test2
-rw-r--r-- 1 testuser author 0 Nov 24 14:58 testa
-rw-r--r-- 1 testuser author 0 Nov 24 17:33 test4
-rw-r--r-- 1 testuser author 11885 Nov 24 11:50 test5
./test2:
total 0
-rw-r--r-- 1 testuser author 0 Nov 24 17:45 test2l
-rw-r--r-- 1 testuser author 0 Nov 24 14:58 test22
Sledeci primeri prikazuju ls komandu sa i bez -u indikatora. Lista koja se
dobija bez -u indikatora prikazuje vreme poslednje modifikacije. Lista koja
se dobija pomocu -u indikatora prikazuje vreme poslednjeg pristupa.
ls -lu
total 40
-rw-r--r-- 1 testuser author 10 Nov 24 17:34 testl
drwxr-xr-x 2 testuser author 512 Nov 24 18:19 test2
-rw-r--r-- 1 testuser author 0 Nov 24 14:58 test3
-rw-r--r-- 1 testuser author 0 Nov 24 17:33 test4
-rw-r--r-- 1 testuser author 11885 Nov 24 17:56 tests ls -1
total 40
-rw-r--r-- 1 testuser author 10 Nov 24 17:36 testl
drwxr-xr-x 2 testuser author 512 Nov 24 17:32 test2
-rw-r--r-- 1 testuser author 0 Nov 24 14:58 test3
-rw-r--r-- 1 testuser author 0 Nov 24 17:33 test4
-rw-r--r-- 1 testuser author 11885 Nov 24 11:50 tests
find
Ako niste sigurni gde se nalazi odredeni fajl, za pretrazivanje upotrebite komandu
find. Ona Vam pruza fleksibilnost u traganju, omogucavajuci Vam da tragate za
fajlom po razlicitim atributima, kao sto su ime, dozvola i slicno. Pored toga,
find komanda omogucava da izvrsavate odredene komande nad fajlovima koji su
pronadeni kao rezultat pretraiivanja.
Format find komande je sledeci:
find directory-name search-expression
Ime direktorijuma moze da bude puno ime puta, ili . (jedna tacka) za tekuci
direktorijum. U sledecoj listi prikazani su termini koji mogu da se koriste
sa find komandom:
-name filename da se specificira ime fajla (ukljucujuci i dzoker znake), koje
ce se koristiti u pretraizivanju. Takode, mozete da koristite opseg kao deo
dzoker znaka. Ako hocete da koristite karaktere, koji predstavljaju dzoker znake,
morate da ih specificirate u okviru znaka navoda. Na primer, "test*"
ce pronaci sve fajlove koji pocinju sa test. Ako specificirate "test[1-2]",
pronaci cete fajlove koji pocinju sa test i imaju 1, ili 2 kao poslednje karaktere,
kao sto su test1 i test2.
- size Number da se specificira velicina fajla, koja se koristi za pretrazivanje.
Velicina fajla specificira se u blokovima. Da biste specificirali da trazite
fajlove cija je velicina manja od specificirane velicine, koristite - (znak
minus) ispred navedene velicine. Da biste specificirali da trazite fajlove cija
je velicina veca od specificirane velicine, koristite + (znak plus) ispred navedene
velicine. Na primer, -size 5 traze fajlove cija velicina iznosi pet blokova
(velicina fajla kod uporedenja uvek se zaokruzuje na sledeéci najblizi
blok), -size -5 trazice fajlove cija je velicina manja ili jednaka pet blokova,
-size +5 trazice fajlove cija je velicina veca od pet blokova.
-size Numberc da se specificira velicina fajla, koja se koristi za pretraiivanje.
Drugim recima, stavite karakter c na kraj broja. Sada je velicina fajla specificirana
u bajtovima. Da biste specificirali da trazite fajlove cija je velicina manja
od navedene velicine, koristite - (znak minus) ispred navedene velicine fajla.
Da biste specificirali da trazite fajlove cija je velicina veca od navedene
velicine, koristite + (znak plus) ispred velicine fajla. Na primer, -size 50c
trazice fajlove cija velicina iznosi 50 bajtova, -size -50c trazice fajlove
cija je velicina manja, ili jednaka 50 bajtova, - size +50c trazice fajlove
cija je velicina veca od 50 bajtova.
-prune da se ogranici komanda find da rekurzivno ne obraduje direktorijume;
po default-u, find rekurzivno obraduje sve direktorijume i poddirektorijume
u navedenom direktorijumu
atime number da se prilikom pretrazivanja traze fajlovi kojima je pristupano
u specificiranom broju perioda od 24 sata. Broj perioda od 24 sata izracunava
se dodavanjem broja 1 na specificirani broj; 0 oznacava poslednja 24 sata.
-mtime number da se prilikom pretrazivanja traze fajlovi koji su bili modifikovani
u specificiranom broju perioda od 24 sata. Broj perioda od 24 sata izracunava
se dodavanjem broja 1 na specificirani broj; 0 oznacava poslednja 24 sata.
-ctime number da se prilikom pretrazivanja traze fajlovi ciji je i-cvor bio
modifikovan u specificiranom broju perioda od 24 sata. Broj perioda od 24 sata
izracunava se dodavanjem broja 1 na specificirani broj; 0 oznacava poslednja
24 sata.
-type filetype da se prilikom pretrazivanja traze fajlovi odredenog tipa. Mogu
da se koriste tipovi koji se nalaze u sledecoj listi:
b - posebni blok fajl
c - posebni karakter fajl
d - direktorijum
f - regularni fajl
1- simboli&ki link
p - FIFO (imenovan pipe)
s - socket
-user da se prilikom pretrazivanja traze fajlovi ciji je vlasnik navedeno ime
korisnika
-perm permission da se prilikom pretrazivanja traze fajlovi sa specificiranom
dozvolom, koja se navodi kao oktalni broj od tri cifre. Ukoliko specificiranoj
dozvoli ne prethodi - (crta), medu dozvolama za fajlove trazi se ona koja je
identicna navedenoj dozvoli. Ukoliko specificiranoj dozvoli prethodi crta, dozvola
za fajl spaja se logickim "i" sa specificiranom dozvolom i medu fajlovima
traze oni koji ispunjavaju taj uslov. Na primer, ako hocete da pretrazujete,
trazeci fajlove ciji vlasnik ima dozvolu za citanje, koristite -perm -400.
-newer filename da se prilikom pretrazivanja traze fajlovi cije je vreme modifikacije
vece od vremena modifikacije specificiranog fajla
-group groupname da se prilikom pretrazivanja traze fajlovi koji pripadaju
specificiranoj grupi.
-inum Number da se prilikom pretraiivanja traze fajlovi ciji je broj i-cvora
jednak specificiranom broju i-cvora
-links Number da se prilikom pretrazivanja traze fajlovi koji imaju specificirani
broj linkova. Da biste naznacili da se pretrazivanje odnosi na broj linkova
manji od navedenog broja linkova, koristite - (znak minus) ispred broja linkova.
Ako hocete da se pretrazivanje odnosi na broj linkova koji je veci od naznacenog,
koristite + (znak plus) ispred broja.
-ls da se ime tekuceg puta ispise zajedno sa sledecim atributima:
brojem i-cvora
-velicinom u kilobajtima (1.024 bajta)
-nacinom zagtite
-brojem hard linkova
-korisnikom
-grupom
-velicinom u bajtovima
-vremenom modifikacije
-exec command da se komanda pozove na izvrsavanje. Da bi se navedena komanda
izvrsila nad fajlovima koji se nalaze u listi fajlova, pronadenih find komandom,
koristite { } iza cega slede ; (backslash, iza koga sledi znak tacka - zarez).
-ok command da se komanda pozove na izvrsavanje. Da bi se navedena komanda
izvrsila nad fajlovima koji se nalaze u listi fajlova pronadenih find komandom,
koristite { }, iza cega slede ; (backslash, iza koga sledi znak tacka - zarez).
UNIX trazi potvrdu pre nego sto nastavi izvrsavanje ove komande.
- print za ispisivanje izlaza cije je generisanje rezultat pretrazivanja.
Ovi operatori mogu medusobno da se kombinuju, cime se omogucava da se formiraju
slozeni kriterijumi za pretrazivanje. Na sledeci nacin mozete da kombinujete
nekoliko operatora:
-operator -a operator da se traze fajlovi koji zadovoljavaju oba navedena kriterijuma
-operator -o operator da se traze fajlovi koji zadovoljavaju jedan, ili drugi
uslov
-!operator da se traze fajlovi koji ne zadovoljavaju navedeni uslov.
Primeri
Pretpostavimo da se u tekucem direktorijumu nalaze sledeci fajlovi:
ls -al
total 64
drwxrwx-- 3 testuser author 3072 Nov 25 00:41 .
drwxr-xr-x 36 root system 2048 Nov 23 19:51 ..
-rw-r--r-- 1 testuser author 0 Nov 24 14:54 .dota
-rw 1 testuser author 10 Nov 24 17:36 testl
drwxr-xr-x 2 testuser author 512 Nov 24 17:32 test2
-r-x 1 testuser author 0 Nov 24 14:58 test3
-rw-r--r-- 1 testuser author 0 Nov 24 17:33 test4
-rw-r--r-- 1 testuser author 15647 Nov 24 18:32 tests
Na sledeci nain mozete da izvrsite najjednostavniji oblik komande find, da
biste dobili listu svih fajlova koji se nalaze u tekucem direktorijumu i njego-vim
poddirektorijumima:
find -print
./tests
./testl
./test3
./test4
./test2
./test2/test2l
./test2/test22
./.dotl
Ako hocete da trazite sve fajlove iz tekuceg direktorijuma koji su u poslednja
24 sata bili modifikovani, upotrebite operator -mtime na sledeci nacin:
find . -mtime 0 -print
/test5
/testl
/test3
/test4
/test2
./test2/test2l
./test2/test22
./.dotl
Da biste pronasli fajl cija dozvola iznosi 600 (samo vlasnik ima dozvolu citanja
i pisanja), pozovite komandu, u kojoj se koristi -perm operator:
find . -perm 600 -print
./testl
U ovom slucaju prikazuje se samo fajl cija dozvola iznosi tacno 600. Medutim,
ako hocete da traite fajl za koji vlasnik ima dozvolu citanja i pisanja, pozovite
komandu u kojoj se nalazi - (crta) ispred 600:
find . -perm -600 -print
./test5
./testl
./test4
./test2
./test2/test2l
./test2/test22
./.dotl
Ukoliko ste zainteresovani samo za pretrazivanje direktorijuma, pozovite komandu,
u kojoj se koristi operator -type:
find . -type d -print
./test2
Da biste dobili vise informacija o fajlovima nadenim prilikom pretrazivanja,
pozovite komandu, u kojoj se koristi operator -ls:
find . -ls
2 4 drwxrwx--- 3 settlea eod 3072 Nov 25 01:11 .
16 16 -rw-r--r-- 1 testuser author 647 Nov 24 18:32 ./test5
18 4 -rw 1 testuser author 10 Nov 24 17:36 ./testl
19 0 -r-x 1 testuser author 0 Nov 24 14:58 ./test3
20 0 -rw-r--r-- 1 testuser author 0 Nov 24 17:33 ./test4
67584 4 drwxr-xr-x 2 testuser author 512 Nov 24 17:32 ./test2
67585 0 -rw-r--r-- 1 testuser author 0 Nov 24 17:45 ./test2/test2l
67586 0 -rw-r--r-- 1 testuser author 0 Nov 24 14:58 ./test2/test22
22 0 -rw-r--r-- 1 testuser author 0 Nov 24 14:54 ./.dotl
Da biste pronasli sve fajlove cije ime pocinje sa test, pozovite komandu, u
kojoj se koristi operator -name:
find . -name 'test** -print
./test5
/testl
/test3
/test4
/test2
./test2/test2l
./test2/test22
Kao sto mozete da vidite, komanda find presla je preko poddirektorijuma test2,
da bi nasla imena koja se u njemu nalaze. Ukoliko hocete da ogranicite pretrazivanje
samo na tekuci direktorijum, izostavljajuci poddirektorijume, pozovite na izvrsavanje
komandu, u kojoj se koristi operator -prune:
find . -name "test*" -prune -print
./test5
./testl
./test3
./test4
./test2
Da biste u tekucem direktorijumu pronali listu fajlova koji su "mladi"
od fajla test1, pozovite komandu, u kojoj se koristi operator -newer:
find . -newer tests -print
./test5
./test2/test2l
S druge strane, ako hocete da pronadete listu fajlova koji su "stariji"
od fajla test1, pozovite komandu, u kojoj se koristi operator ! za negaciju,
u kombinaciji sa operatorom -newer:
find . ! -newer test1 -print
./test3
./test4
./test2
./test2/test22
./.dotl
Ukoliko hocete da dobijete listu svih fajlova cija velicina iznosi tacno 10
bajtova, pozovite komandu, u kojoj se koristi operator -size:
find . -size 10c -print
./test1
Ako hocete da kreirate listu fajlova koji su manji od 10 bajtova, pozovite
na izvrsavanje komandu (ona je identicna prethodnoj, izuzev sto se ispred broja
10 nalazi crta):
find . -size -10c -print
./test3
./test4
./test2/test2l
./test2/test22
./.dotl
Ako hocete da dobijete listu svih fajlova Cija je velicina jednaka nuli, na
sledeci nain pozovite komandu find, u kojoj se koristi parametar -exec:
find . -size Oc -exec ls -1 {} ;
-r-x 1 testuser author 0 Nov 24 14:58 ./test3
-rw-r--r-- 1 testuser author 0 Nov 24 17:33 ./test4
-rw-r--r-- 1 testuser author 0 Nov 24 17:45 ./test2/test2l
-rw-r--r-- 1 testuser author 0 Nov 24 14:58 ./test2/test22
-rw-r--r-- 1 testuser author 0 Nov 24 14:54 ./.dotl
Ako hocete da uklonite sve fajlove cija je velicina jednaka nuli, ah, pri tom,
hocete da pre brisanja povrdite brisanje, pozovite komandu, u kojoj se nalazi
operator -ok:
find . -size Oc -ok rm {} ;
rm ... ./test3 > (yes)? y
rm ... ./test4 > (yes)? n
rm ... ./test2/test2l > (yes)? y
rm ... ./test2/test22 > (yes)? y
rm ... ./.dot1 > (yes)? y
Ovde ste odluciti da ne uklonite fajl test4.
U svim primerima koje ste do sada videli kordstio se po jedan operator. Moguce
je pozvati na izvrsavanje find komandu, sa zadatim kompleksnim uslovima za pretrazivanje,
koji u sebi sadrze vise operatora medusobno kombinovanih pomocu
uslova'ili' (or) ili 'i' (and). Ako hocete da dobijete informacije o svim fajlovima
cije ime pocinje sa test i Cija je velicina jednaka nuli, pozovite komandu:
find . -name 'test*' -size Oc -print
./test3
./test4
./test2/test2l
./test2/test22
U ovom primeru kombinovali smo dva razlicita operatora. Isti operator moze
da se koristi vise puta u kombinaciji sa and, ili or operatorima. Ako hocete
da trazite sve fajlove koji se nalaze u tekucem direktorijumu, cija je velicina
veca od nula i manja od 50 bajtova, pri cemu treba da bude zadovoljen i uslov
da njihovo ime pocinje sa test,pozovite komandu:
find . -size +0c -a -size -50c -name 'test*' -exec is -1 {} ;
-rw 1 testuser author 10 Nov 24 17:36 ./testl
file
Komanda file moze da se koristi za odredivanje tipa navedenog fajla. U stvari,
komanda file cita fajl i izvrsava niz testova na osnovu kojih odreduje njegov
tip. Posle toga ova komanda izlaz prikazuje kao standardni izlaz.
Ukoliko je to ASCII fajl, komanda file ispituje njegovih prvih 512 bajtova i
pokusava da odredi o kom se jeziku radi. Ukoliko te, nije ASCII fajl, komanda
file dalje pokusava da ustanovi da li se radi o fajlu sa binarnim podacima,
ili o tekstualnom fajlu, koji sadrzi prosirene karaktere.
Ako argument File specificira fajl koji predstavlja izvrsni fajl, ili objektni
modul, pri cemu je njegov broj verzije veci od 0, komanda file prikazuje oznaku
verzije.Komanda file koristi fajl /etc/magic da identifikuje fajlove koji imaju
neku vrstu magicnog broja, odnosno svaki fajl koji sadrzi numericku konstantu,
iii konstantu koja se sastoji iz niza karaktera i oznacava tip.
Primer
Ako u tekucem direktorijumu imate fajl po imenu letter, u kome se nalazi pismo
Vasem prijatelju, izvrsavanjem sledece komande
file letter
dobija se rezultat:
letter: commands text
Ako imate fajl po imenu prog, koji predstavlja izvrsni program, pri cemu radite
na IBM RISC 6000 AIX verziji 3.1, tada ce rezultat izvrsavanja komande
file prog
biti sledeci:
prog: executable (RISC System/6000 v3.1)
Ukoliko se nalazite u direktorijumu /dev, u kome se nalaze svi posebni fajlovi,
izvrsavanjem komande
file hdl
za fajl hdi (oval fajl je disk na kome je definisan fajl sistem), dobija se
sledeci rezultat
hdl: block special