Cel / dev / zero?


49

Próbowałem cat /dev/zero, ale to nic nie zrobiło. Poszukałem /dev/zerogo w Google i napisano, że jest to po prostu pusty plik o nieskończonym rozmiarze. Czy catdrukuje nieskończoną liczbę nieistniejących znaków? Jak to działa? W jaki sposób zapewnia nieskończone dane, jeśli ma 0 bajtów? Jakie są zastosowania tego pliku, jeśli można po prostu utworzyć pusty plik?


11
Uruchom, cat -v /dev/zeroaby zobaczyć, co robi. Zobacz Czyszczenie nieużywanego miejsca zerami (ext3, ext4) dla wspólnego celu.
manatwork

Istnieje również / dev / null, który zachowuje się jak pusty plik, jeśli chcesz go przeczytać, i jako czarna dziura, jeśli do niego napiszesz.
jofel

@jofel, ale nie możesz używać / dev / null dla nieskończonych 0-bitów, prawda? cat foo > /dev/nulli cat foo > /dev/zerosą takie same, ale cat /dev/nulli cat /dev/zeroto nie to samo, prawda?
tkbx

@tkbx tak, poprawne. /dev/nullnatychmiast zwraca EOF, jeśli program chce z niego czytać. /dev/zerozwraca nieskończenie 0 bajtów.
jofel

Odpowiedzi:


53

/dev/zeroto specjalny plik (w tym przypadku pseudo-urządzenie), który zapewnia niekończący się strumień pustych znaków (więc hex 0x00)? Dlatego catnic nie wypisuje (ale spróbuj to uruchomić od(ósemkowy zrzut)).

„pusty plik o nieskończonym rozmiarze” nie jest w 100% poprawny: nie jest to zwykły plik, ale plik specjalny (bardziej jak „strumień” lub generator). Możesz przeczytać z niego tyle, ile chcesz, na przykład za pomocą dd(lubię dd if=/dev/zero of=yourfile count=1024 bs=1024).

Nie jest to tak naprawdę pusty plik ani nie jest używany do tworzenia pustych plików: służy do tworzenia plików lub stron pamięci wypełnionych tylko zerami. Możesz także do niego pisać, dzięki czemu działa on jak zlew (bardziej popularny /dev/nulljest jednak do tego bardziej popularny brat ).


Dlaczego jednak ktoś chciałby wypełnić puste miejsce?
tkbx

5
Na przykład, aby usunąć to, co było wcześniej. Lub podczas transmisji.
Konerak

4
Nie przeczytałem srminstrukcji ani źródła, ale większość „bezpiecznych gumek” woli zapisywać (pseudo-) losowe dane zamiast zerowania dysku, ponieważ jedno przejście zerowania nie jest wystarczająco bezpieczne (niektóre trzyliterowe agencje nadal można odjąć oryginalną zawartość zerowanego dysku twardego, ponieważ poszczególne bity nie są w 100% prawdziwe 1 lub 0, ale tylko „głównie 1” lub „głównie 0”. Porównaj to z dźwignią, którą możesz umieścić „do końca „lub„ całkowicie w prawo ”, ale zwykle wystarczy tylko przechylenie na drugą stronę.
Konerak

11
@tkbx próbuje na ddpartycję, możesz chcieć wypełnić całe puste miejsce do 0 zamiast losowo, aby później uzyskać mniejszy skompresowany plik.
neurino,

1
@Konerak Jestem dość podejrzliwy. Słyszałem to wszędzie i nigdy nie widziałem dowodów na to, że jest to możliwe na jakimkolwiek zdalnie nowym dysku twardym (wyprodukowanym przynajmniej przez ostatnie 10 lat).
Rob
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.