Tipovi datoteka
-
doslovno sve je datoteka
- pisač, skener, hard disk, USB port, Ethernet kartica, zvučna kartica, web kamera, DVD snimač, ...
- baza podataka, web stranica, instalirane aplikacije i njihove postavke, ...
- obične datoteke, poveznice, procesi, socketi, ...
-
tipovi datoteka
- obična datoteka, direktorij, simbolička poveznica, specijalna znakovna datoteka, specijalna blok datoteka, fifo datoteka (imenovana cijev), socket
- informacija o tipu datoteke zapisana u inodeu, može se pročitati pomoću
stat
-a
-
naredba
file
prepoznaje tip datoteke (kod običnih datoteka korištenjem tvz. magičnih testova po sadržaju prepoznaje i radi li se o tekstualnoj datoteci, rasterskoj grafici, video zapisu, aplikaciji, ...)- Napomena: Linux ne razlikuje datoteke po ekstenziji (kao Windowsi), već po sadržaju; za Linux, ekstenzija je samo dio imena, i uredno se može raditi sa PNG datotekom koja se zove
fotka1587.txt
(ako je zaista PNG datoteka). - Već samo zbog toga je Linux prilično imun na viruse i zlonamjerni softver; ukoliko vam netko pošalje izvršnu datoteku s ekstenzijom JPG, prije nego je nehotice pokrenete dobiti ćete informaciju da se ne radi o slici, već o izvršnoj datoteci.
- Napomena: Linux ne razlikuje datoteke po ekstenziji (kao Windowsi), već po sadržaju; za Linux, ekstenzija je samo dio imena, i uredno se može raditi sa PNG datotekom koja se zove
-
obična datoteka (
-
)-
datoteka korisničke aplikacije; primjer:
$ ls -l /etc/hosts
-
-
direktorij (
d
)-
može sadržavati datoteke i poddirektorije; primjer:
$ ls -l /home/miran
-
-
simbolička poveznica (
l
)-
njihov sadržaj je putanja do datoteke na koju pokazuju (može biti apsolutna i relativna); primjer:
$ ls -l /usr/bin/python
-
-
specijalna blok datoteka (
b
)- buffered: kod čitanja i pisanja podaci se prvo spremaju u međuspremnik
-
omogućuje asinkrono zapisivanje (engl. asynchronous write); primjer:
$ ls -l /dev/sda1
-
specijalna znakovna datoteka (
c
)-
unbuffered: podaci se čitaju direktno, nema međuspremnika; primjer:
$ ls -l /dev/input/mice
-
-
mknod
stvara specijalne blok i specijalne znakovne datoteke (spominjemo radi potpunosti)
Zadatak
- Pronađite još tri primjera običnih datoteka i po još jedan primjer za svaku od ostalih vrsta datoteka. (Uputa: koristite rekurzivno izlistavanje.)
- Ispitajte tip običnih datoteka koje ste pronašli.
Imenovane cijevi i utičnice
-
fifo datoteka (imenovana cijev) (
p
)- radi slično kao cijevi koje smo već koristili, jedino što ima ime
-
radi isključivo lokalno na računalu; primjer:
$ ls -l /home/vedran/python-samples/fifo1
-
mkfifo
stvara fifo datoteku danog imena -
socket (
s
)- datoteka koja služi za međuprocesnu komunikaciju
- radi lokalno i preko mreže
-
npr. lokalna komunikacija dva procesa, otvorena HTTP veza prema nekom poslužitelju za vrijeme preuzimanja datoteke ili otvorena SSH veza s nekog drugog poslužitelja; primjer:
$ ls -l /var/run/acpid.socket
-
time ćemo se više baviti kad budemo radili modul
socket
u Pythonu
Zadatak
Stvorite fifo datoteku pod nazivom cijev1
. Pokrenite dva terminala.
- U jednom terminalu pokrenite
cat < cijev1
, a u drugomcat > cijev1
. Uočite da se ono što unesete u drugom terminalu ispisuje u prvom. - Pod kojim uvjetom se oba procesa prekidaju? Mogu li obje strane izazvati prekid?
- Postoji li međuspremnik?
Author: Vedran Miletić, Vanja Slavuj