Doel van / dev / zero?
Geplaatst op februari 17, 2021 door admin Ik heb geprobeerd cat /dev/zero
, maar het leek niets te doen. Ik googlede /dev/zero
, en er staat dat het in feite een leeg bestand is met een oneindige grootte. Drukt cat
een oneindig aantal niet-bestaande tekens af? Hoe werkt dit? Hoe levert het oneindige gegevens op als het 0 bytes is? Wat zijn de toepassingen van dit bestand, als men eenvoudig een leeg bestand kan maken?
Opmerkingen
Antwoord
/dev/zero
is een speciaal bestand (in dit geval een pseudo-apparaat) dat een eindeloze stroom nul-tekens bevat (dus hex 0x00)? Daarom geeft uw cat
niets uit (maar probeer het door od
(octale dump)) te halen.
“leeg bestand met oneindige grootte” is niet 100% correct: het “is geen gewoon bestand, maar een speciaal bestand (meer een” stream “of een generator). U kunt er zoveel uit lezen als u wilt, bijvoorbeeld met dd
(zoals dd if=/dev/zero of=yourfile count=1024 bs=1024
).
Het “Het is niet echt een leeg bestand, en het wordt ook niet gebruikt om lege bestanden te maken: het wordt gebruikt om bestanden of geheugenpaginas te maken die alleen met nullen zijn gevuld. Je kunt er ook naar schrijven, waardoor het presteert als een zinkgat (zijn meer populaire broer /dev/null
wordt hier echter vaker voor gebruikt).
Opmerkingen
- Waarom zou iemand echter lege ruimte willen opvullen?
- Bijvoorbeeld om te wissen wat er eerder was. Of bij het verzenden.
- Ik ' heb de
srm
handleiding of bron niet gelezen, maar de meeste ' beveiligde wissers ' geven er de voorkeur aan (pseudo) willekeurige gegevens te schrijven in plaats van een schijf op nul te stellen, aangezien één nulstelling niet veilig genoeg is (bepaalde bureaus van drie letters kunnen nog steeds de oorspronkelijke inhoud van een op nul gestelde harde schijf aftrekken, aangezien de individuele bits niet 100% echt 1 of 0 zijn, maar alleen " meestal 1 " of " meestal 0 ". Vergelijk het met een hefboom die u " helemaal naar links " of " helemaal naar rechts ", maar meestal is een zwaai naar de andere kant voldoende. - @tkbx proberen een
dd
partitie te maken, je wilt misschien alle lege ruimte vullen tot 0 in plaats van willekeurig om een kleiner gecomprimeerd bestand lat eh. - @Konerak Ik ' ben daar redelijk verdacht van. Ik ' heb het overal horen zeggen en ik ' heb nog nooit het bewijs gezien dat het mogelijk is op een nieuwe harde schijf ( gemaakt in de afgelopen 10 jaar).
cat -v /dev/zero
uit om te zien wat het doet. Zie Maak ongebruikte ruimte leeg met nullen (ext3, ext4) voor een gemeenschappelijk doel.cat foo > /dev/null
encat foo > /dev/zero
zijn hetzelfde, maarcat /dev/null
encat /dev/zero
zijn ' t hetzelfde, correct?/dev/null
retourneert onmiddellijk EOF als een programma ervan wil lezen./dev/zero
retourneert oneindig 0 bytes.