Účel / dev / nula?
On 17 února, 2021 by admin Snažil jsem se cat /dev/zero
a zdálo se, že nic nedělá. Vyhledal jsem /dev/zero
a říká, že je to v zásadě prázdný soubor s nekonečnou velikostí. Tiskne cat
nekonečné množství neexistujících znaků? Jak to funguje? Jak poskytuje nekonečná data, pokud má 0 bajtů? Jaká jsou použití tohoto souboru, pokud lze jednoduše vytvořit prázdný soubor?
Komentáře
Odpověď
/dev/zero
je speciální soubor (v tomto případě pseudozařízení), který poskytuje nekonečný proud prázdných znaků (tak hex 0x00)? Proto váš cat
nic nevydává (ale zkuste to spustit přes od
(osmičkový výpis)).
„prázdný soubor s nekonečnou velikostí“ není 100% správný: nejde o běžný soubor, ale o speciální soubor (spíš „stream“ nebo generátor). Můžete z ní číst, kolik chcete, například pomocí dd
(jako dd if=/dev/zero of=yourfile count=1024 bs=1024
).
It „ve skutečnosti není prázdný soubor ani se nepoužívá k vytváření prázdných souborů: používá se k vytváření souborů nebo stránek v paměti vyplněných pouze nulami. Můžete do něj také psát, aby fungoval jako závrt (běžnější bratr /dev/null
se však běžněji používá).
Komentáře
- Proč by však někdo chtěl zaplnit prázdné místo?
- Například vymazat to, co tam bylo dříve. Nebo při přenosu.
- Ne ' jsem nečetl
srm
příručku ani zdroj, ale většina ' zabezpečené gumy ' dávají přednost zápisu (pseudo-) náhodných dat namísto vynulování disku, protože jeden průchod vynulování není dostatečně bezpečný (Některé třípísmenové agentury mohou stále odečíst původní obsah vynulovaného pevného disku, protože jednotlivé bity nejsou 100% skutečně 1 nebo 0, ale pouze " většinou 1 " nebo " většinou 0 ". Porovnejte to s pákou, kterou můžete " úplně doleva " nebo " úplně doprava ", ale obvykle stačí jen houpačka na druhou stranu. - @tkbx se snaží
dd
oddíl, který byste chtěli zaplnit celé prázdné místo na 0 spíše než náhodně získat menší komprimovaný soubor lat er. - @Konerak I ' jsem k tomu docela podezřelý. ' Slyšel jsem to říkat všude a ' jsem nikdy neviděl důkaz toho, že by to bylo možné na jakémkoli vzdáleně novém pevném disku ( vyrobeno minimálně za posledních 10 let).
cat -v /dev/zero
a podívejte se, co dělá. Viz Vymazání nevyužitého prostoru nulami (ext3, ext4) pro společný účel.cat foo > /dev/null
acat foo > /dev/zero
jsou stejné, alecat /dev/null
acat /dev/zero
nejsou ' stejné, správně?/dev/null
se okamžitě vrátí EOF , pokud z něj program chce číst./dev/zero
vrací nekonečně 0 bajtů.