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 .



A fájl speciális típusának meghatározása - Linux parancssor.

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

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: -