Speciális fájl
Egy számítógépben operációs rendszer , nak nek speciális fájl a fájlban tárolt fájlok egy típusa fájlrendszer . Egy speciális fájlt néha a-nak is hívnak eszközfájl .
Egy speciális fájl célja az eszköz fájlként való feltárása a fájlrendszerben. Egy speciális fájl univerzális felületet biztosít a hardvereszközökhöz (és a kernel által létrehozott és használt virtuális eszközökhöz), mivel a fájlokhoz szükséges eszközök I / O hozzáférhet az eszközhöz.
Ha az adatok pirosak vagy speciális fájlokba vannak írva, a művelet azonnal megtörténik, és nem vonatkoznak rá a hagyományos fájlrendszeri szabályok.
A Linuxban kétféle speciális fájl létezik: blokkolja a speciális fájlt és karakteres speciális fájl .
- Speciális fájlok blokkolása
- Karakter speciális fájlok
- Linux fájltípusok
- Hogyan állapíthatom meg, hogy egy fájl különleges-e?
Speciális fájlok blokkolása
NAK NEK blokkolja a speciális fájlt közvetlen interfészként működik egy blokkoló eszközhöz. Blokkoló eszköz minden olyan eszköz, amely adat-I / O egységeket hajt végre blokkok .
Példák blokkoló speciális fájlokra:
- / dev / sd xn - felszerelt partíciók fizikai tárolóeszközök . A levél x fizikai eszközre és a számra utal n az eszköz partíciójára utal. Például, / dev / sda1 az első partíció az első fizikai tárolóeszközön.
- / dev / loop n - hurkos eszközök. Ezek olyan speciális eszközök, amelyek lehetővé teszik a fájlrendszerben lévő fájlok blokkeszközként való használatát. A fájl egy teljes saját fájlrendszert tartalmazhat, és úgy érhető el, mintha egy fizikai tárolóeszközön csatlakoztatott partíció lenne. Például egy ISO lemezképfájlt hurokeszközként lehet csatlakoztatni.
Ha tudni akarod, hogy mekkora blokk van a rendszereden, futtasd ' blockdev --getbsz eszköz ' gyökérként , például .:
sudo blockdev --getbsz /dev/sda1
4096
Ebben a példában a blokk mérete 4096 bájtokat (4 kibibyte).
Karakter speciális fájlok
NAK NEK karakteres speciális fájl hasonló egy blokkoló eszközhöz, de az adatokat egy karakterrel (nyolc bitek vagy egy bájt) egyszerre.
Példák karakteres speciális fájlokra:
- / dev / stdin ( Normál bemenet .)
- / dev / stdout ( Normál kimenet .)
- / dev / stderr ( Standard hiba .)
- / dev / random ( PRNG ami késleltetheti az érték visszaadását további entrópia megszerzéséhez.)
- / dev / urandom (PRNG, amely az előírt entrópiától függetlenül mindig azonnal visszaad egy értéket.)
- / dev / null (A null eszköz. A fájlból történő olvasás mindig null bájtot kap; a fájlba való írás sikeresen nem tesz semmit.)
Linux fájltípusok
A Linux kernelben a fájltípusok a fejlécfájlban vannak megadva sys / stat.h . A típus neve, a szimbolikus név és a bitmaszk az egyes Linux fájltípusokhoz az alábbiakban található.
Írja be a nevet | Szimbolikus név | Bitmaszk |
---|---|---|
Foglalat | S_IFSOCK | 0140000 |
Szimbolikus link | S_IFLNK | 0120000 |
Rendes fájl | S_IFREG | 0100000 |
Speciális fájl blokkolása | S_IFBLK | 0060000 |
Könyvtár | S_IFDIR | 0040000 |
Karakter speciális fájl | S_IFCHR | 0020000 |
FIFO (nevezett cső) | S_IFIFO | 0010000 |
Hogyan állapíthatom meg, hogy egy fájl különleges-e?
Teszt blokk speciális
Ban ben bash , a parancs ' teszt -b fájl 'adja vissza a 0 kilépési állapotot, ha fájl blokk speciális, vagy 1, ha fájl egy másik típus, vagy nem létezik.
test -b /dev/sda1; echo $? # check for block special, echo exit status of test
0
test -b /dev/null; echo $? # character special files are not block special
1
Karakteres teszt
Annak megállapításához, hogy egy fájl karakter-e, használja a 'test -c parancsot fájl ':
test -c /dev/null; echo $?
0
A stat
A fájl típusát a stat segítségével is ellenőrizheti:
stat /dev/sda1
File: /dev/sda1 Size: 0 Blocks: 0 IO Block: 4096 block special file Device: 6h/6d Inode: 7998 Links: 1 Device type: 8,1 Access: (0660/brw-rw----) Uid: ( 0/ root) Gid: ( 6/ disk) Access: 2018-07-08 06:41:25.540000000 -0400 Modify: 2018-07-08 06:41:25.540000000 -0400 Change: 2018-07-08 06:41:25.540000000 -0400 Birth: -
stat /dev/random
File: /dev/random Size: 0 Blocks: 0 IO Block: 4096 character special file Device: 6h/6d Inode: 6518 Links: 1 Device type: 1,8 Access: (0666/crw-rw-rw-) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2018-07-08 06:41:19.676000000 -0400 Modify: 2018-07-08 06:41:19.676000000 -0400 Change: 2018-07-08 06:41:19.676000000 -0400 Birth: -