Syfte med / dev / zero?
On februari 17, 2021 by admin Jag försökte cat /dev/zero
, och det verkade inte göra någonting. Jag googlade /dev/zero
, och det står att det i grund och botten är en tom fil med oändlig storlek. Är cat
ett oändligt antal obefintliga tecken? Hur fungerar detta? Hur tillhandahåller det oändlig data om det är 0 byte? Vad använder den här filen om man helt enkelt kan skapa en tom fil?
Kommentarer
Svar
/dev/zero
är en speciell fil (i det här fallet en pseudo-enhet) som ger en oändlig ström av noll tecken (så hex 0x00)? Det är därför din cat
inte lägger ut något (men försök att köra det genom od
(oktal dumpning)).
”tom fil med oändlig storlek” är inte 100% korrekt: det är inte en vanlig fil utan en speciell fil (mer som en ”ström” eller en generator). Du kan läsa så mycket från det du vill, till exempel med dd
(som dd if=/dev/zero of=yourfile count=1024 bs=1024
).
Det ”egentligen inte en tom fil eller används för att skapa tomma filer: den används för att skapa filer eller minnessidor fyllda med endast nollor. Du kan också skriva till den, så att den fungerar som en sjunka (dess mer populära bror /dev/null
används dock oftare för detta.
Kommentarer
- Varför skulle någon dock vilja fylla i tomt utrymme?
- Till exempel för att radera det som fanns tidigare. Eller när du sänder.
- Jag ' har inte läst
srm
manualen eller källan, men de flesta ' säkra raderare ' föredrar att skriva (pseudo-) slumpmässiga data istället för att nollställa en enhet, eftersom ett pass av nolling inte är tillräckligt säker (vissa byråer med tre bokstäver kan fortfarande dra av originalinnehållet på en nollställd hårddisk, eftersom de enskilda bitarna inte är 100% verkligen 1 eller 0, utan bara " mestadels 1 " eller " mestadels 0 ". Jämför det med en spak som du kan sätta " hela vägen " eller " hela vägen till höger ", men vanligtvis bara en svängning till andra sidan räcker. - @tkbx försöker
dd
en partition som du kanske vill fylla allt tomt utrymme till 0 snarare än slumpmässigt för att få en mindre komprimerad fil lat är. - @Konerak I ' jag är ganska misstänksam mot det. Jag ' har hört det sagt överallt och jag ' har aldrig en gång sett bevis för att det är möjligt på någon fjärrny hårddisk ( gjort de senaste tio åren åtminstone).
cat -v /dev/zero
för att se vad den gör. Se Rensa oanvänt utrymme med nollor (ext3, ext4) för ett gemensamt ändamål.cat foo > /dev/null
ochcat foo > /dev/zero
är desamma, mencat /dev/null
ochcat /dev/zero
är ' t samma, rätt?/dev/null
returnerar omedelbart EOF om ett program vill läsa från det./dev/zero
returnerar oändligt 0-byte.