Naredbe za koje (možda) niste znali 9: file

Naredba file(1) je jedna od korisnijih naredbi za brzo utvrđivanje tipa datoteke. Unix sustavi, uključujući i Linux, nemaju posebne ekstenzije za datoteke koji bi određivali tip datoteke (.txt, .doc). Kako bi bez otvaranja datoteke u nekom editoru (koji inače služe samo za pregled tekstualnih datoteka) saznali o kakavoj se datoteci radi, možemo se poslužiti naredbom file:

$ file /bin/ps
/bin/ps: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for
GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped

Saznali smo da je datoteka /bin/ps 32-bitna izvršna binarna datoteka, kompatibilna sa x86 arhitekturo. Dodatno, program rabi dinamične biblioteke (DLL-ove), te su iz nje maknuti svi simboli iz kompiliranog koda (programeri će znati o čemu je riječ, a za ostale je dovoljno reći da je stripana datoteka znatno manja, a nema bez gubitka funkcionalnosti).

$ file /boot/sid.bmp
/boot/sid.bmp: PC bitmap data, Windows 3.x format, 640 x 480 x 4

Datoteka sid.bmp je obična sličica u Bitmap formatu, a odmah su dane i dimenzije, kao i dubina boja (2^4 = 16 boja).

$ file /etc/motd
/etc/motd: ASCII English text

Datoteka /etc/motd je, očekivano,obična tektualna datoteka (svi znakovi su ispod ASCII 127). Detekcija jezika, isto tako, nije savršena, pa se u nju nemojte pouzdati.

$ file /dev/sda2
/dev/sda2: block special (8/2)

Naredba file može detektirati i datoteke koje to zapravo nisu. Ovdje smo testirali datoteku koja predstavlja drugu particiju na prvom disku, a rezultat je očekivan: riječ je o posebnoj block-oriented datoteci, kao što su to svi diskovi. Brojevi u zagradi znače koji su major i minor brojevi te posebne datoteke. Za ilustraciju, pogledajte i rezultat za trakovni uređaj:

$ file /dev/st0
/dev/st0: character special (9/0)

Traka je, naravno, character-based uređaj, što naredba file uredno detektira.

Dakle, naredba file pokušava što opširnije opisati o kakvoj je datoteci riječ. To pokušava na tri načina: putem datotečnog sustava i sistemskog poziva stat(2), "magičnih" brojeva i na kraju pregledom sadržaja datoteke. Magični broj se nalazi u gotovo svakoj binarnoj datoteci, približno na početku. Popis ovih magičnih brojeva se nalazi u direktoriju /usr/share/misc/file/ u nekoliko datoteka, koje ne trebate nikad dirati jer se periodično osvježavaju u novim inačicama paketa.

Ukoliko tip datoteke nije prepoznat, možete sami upisati magični broj, ali u datoteku /etc/magic. Format upisa možete saznati sa "man magic".

Kuharice: 
Kategorije: 
Vote: 
0
No votes yet