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".
- Inačica za ispis
- Logirajte se za dodavanje komentara
- PDF version