Erikoistiedosto

Tietokoneessa käyttöjärjestelmä , erityinen tiedosto on tiedostotyyppi, joka on tallennettu a tiedostojärjestelmä . Erityistä tiedostoa kutsutaan joskus myös a laitetiedosto .

Tiedoston erityistyypin määrittäminen - Linux-komentorivi.



Erikoistiedoston tarkoituksena on paljastaa laite tiedostona tiedostojärjestelmässä. Erityinen tiedosto tarjoaa yleisen käyttöliittymän laitteille (ja ytimen luomille ja käyttämille virtuaalilaitteille), koska tiedostojen työkalut I / O voivat käyttää laitetta.

Kun tiedot ovat punaisia ​​tai kirjoitetaan erityistiedostoihin, toiminta tapahtuu välittömästi eikä siihen sovelleta tavanomaisia ​​tiedostojärjestelmän sääntöjä.

Linuxissa on kahdenlaisia ​​erityistiedostoja: estä erityistiedosto ja merkki erityistiedosto .



Estä erikoistiedostot

TO estä erityistiedosto toimii suorana liitäntänä estolaitteeseen. Lohkolaite on mikä tahansa laite, joka suorittaa datan I / O: n yksikköinä lohkot .

Esimerkkejä estotiedostoista:

kuinka muuttaa hakemistoja Linuxissa
  • / dev / sd xn - asennettu osiot fyysinen tallennuslaitteet . Kirje x viittaa fyysiseen laitteeseen ja numeroon n viittaa laitteen osioon. Esimerkiksi, / dev / sda1 on ensimmäisen fyysisen tallennuslaitteen ensimmäinen osio.
  • / dev / silmukka n - silmukka laitteet. Nämä ovat erikoislaitteita, joiden avulla tiedostojärjestelmän tiedostoa voidaan käyttää estolaitteena. Tiedosto voi sisältää kokonaisen oman tiedostojärjestelmän, ja sitä voidaan käyttää ikään kuin se olisi fyysiseen tallennuslaitteeseen asennettu osio. Esimerkiksi ISO-levytiedostotiedosto voidaan asentaa silmukkalaitteeksi.

Jos haluat tietää, kuinka suuri lohko on järjestelmässäsi, suorita ' blockdev --getbsz laite ' juurena , esimerkiksi .:



sudo blockdev --getbsz /dev/sda1
4096

Tässä esimerkissä lohkon koko on 4096 tavua (4 kibatavua).

Merkki erityistiedostot

TO merkki erityistiedosto on samanlainen kuin estolaite, mutta tiedot kirjoitetaan yksi merkki (kahdeksan bittiä tai yksi tavu) kerrallaan.

ota langaton sovitin käyttöön Windows 7

Esimerkkejä merkkikohtaisista tiedostoista:

  • / dev / stdin ( Vakiotulo .)
  • / dev / stdout ( Vakiolähtö .)
  • / dev / stderr ( Tavallinen virhe .)
  • / dev / satunnainen ( PRNG mikä saattaa viivästyttää arvon palauttamista uuden entropian saamiseksi.)
  • / dev / urandom (PRNG, joka palauttaa arvon aina välittömästi vaaditusta entropiasta riippumatta.)
  • / dev / null (Nolla laite. Tästä tiedostosta lukeminen saa aina nollatavun; tähän tiedostoon kirjoittaminen ei tee mitään.)

Linux-tiedostotyypit

Linux-ytimessä tiedostotyypit ilmoitetaan otsikkotiedostossa sys / stat.h . Tyypin nimi, symbolinen nimi ja bitmaski jokaiselle Linux-tiedostotyypille on lueteltu alla.

Kirjoita nimi Symbolinen nimi Bitmaski
Pistoke S_IFSOCK 0140000
Symbolinen linkki S_IFLNK 0120000
Tavallinen tiedosto S_IFREG 0100000
Estä erityistiedosto S_IFBLK 0060000
Hakemisto S_IFDIR 0040000
Merkki erityistiedosto S_IFCHR 0020000
FIFO (nimetty putki) S_IFIFO 0010000

Mistä tiedän, onko tiedosto erityinen?

Testi erityistä lohkoa varten

Sisään lyödä , käsky ' testata -b tiedosto 'palauttaa poistumistilan 0, jos tiedosto on lohkokohtainen tai 1 jos tiedosto on muuta tyyppiä tai sitä ei ole olemassa.

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

Testaa erityishahmo

Käytä 'test -c' selvittääksesi onko tiedosto merkkikohtainen tiedosto ':

test -c /dev/null; echo $?
0

Käyttämällä stat

Voit myös tarkistaa tiedoston tyypin tilastolla:

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