Tarkoitus / dev / zero?
On helmikuu 17, 2021 by admin Yritin cat /dev/zero
, eikä se näyttänyt tekevän mitään. Googlen /dev/zero
, ja siinä sanotaan, että se on pohjimmiltaan tyhjä tiedosto, jolla on ääretön koko. Tulostaako cat
ääretön määrä olemattomia merkkejä? Miten tämä toimii? Kuinka se tarjoaa ääretöntä dataa, jos sen 0 tavua on? Mitkä ovat tämän tiedoston käyttötarkoitukset, jos voidaan luoda yksinkertaisesti tyhjä tiedosto?
Kommentit
Vastaus
/dev/zero
on erityistiedosto (tässä tapauksessa näennäislaite), joka tarjoaa loputtoman tyhjien merkkien virran (niin kuusikulmainen 0x00)? Siksi cat
ei tuota mitään (mutta yritä suorittaa se od
(oktaalidumppi) kautta.
”tyhjä tiedosto, jolla on ääretön koko”, ei ole 100% oikea: se ei ole tavallinen tiedosto, vaan erityinen tiedosto (enemmän kuin ”virta” tai generaattori). Voit lukea siitä niin paljon kuin haluat, esimerkiksi dd
(kuten dd if=/dev/zero of=yourfile count=1024 bs=1024
).
Se ”ei oikeastaan ole tyhjä tiedosto, eikä sitä käytetä tyhjien tiedostojen luomiseen: sitä käytetään vain nollilla täytettyjen tiedostojen tai muistisivujen luomiseen. Voit myös kirjoittaa sille, jolloin se toimii kuten reikä (sen suositumpi veli /dev/null
käytetään kuitenkin yleisemmin tähän).
Kommentit
- Miksi joku haluaa kuitenkin täyttää tyhjää tilaa?
- Esimerkiksi pyyhkiä pois mitä aiemmin oli. Tai lähetettäessä.
- En ' en ole lukenut
srm
-käyttöohjelmaa tai lähdettä, mutta eniten ' suojatut pyyhekumit ' haluavat kirjoittaa (näennäis-) satunnaisia tietoja aseman nollaamisen sijasta, koska yksi nollan siirto ei ole tarpeeksi turvallinen (tietyt kolmikirjaimiset toimistot voivat silti vähentää nollatun kiintolevyn alkuperäisen sisällön, koska yksittäiset bitit eivät ole 100% aidosti 1 tai 0, vaan vain " enimmäkseen 1 " tai " enimmäkseen 0 ". Vertaa sitä vipuun, jonka voit laittaa " kokonaan vasemmalle " tai " kokonaan oikealle ", mutta yleensä riittää vain kääntäminen toiselle puolelle. - @tkbx yrittää
dd
osiota, jonka haluat täyttää kaikki tyhjät tilat nollaan sijaan satunnaisesti saadaksesi pienemmän pakatun tiedoston lat er. - @Konerak olen ' melko epäilevä siitä. Olen ' kuullut sen sanovan kaikkialla, enkä ' ole koskaan nähnyt todisteita siitä, että se olisi mahdollista millään uudella etänä olevalla kiintolevyllä ( viimeisten 10 vuoden aikana).
cat -v /dev/zero
nähdäksesi, mitä se tekee. Katso Tyhjennä käyttämätön tila nollilla (ext3, ext4) yleiseen tarkoitukseen.cat foo > /dev/null
jacat foo > /dev/zero
ovat samat, muttacat /dev/null
jacat /dev/zero
eivät ' ole sama, oikea?/dev/null
palaa välittömästi EOF , jos ohjelma haluaa lukea siitä./dev/zero
palauttaa loputtomasti 0 tavua.