Cel / dev / zero?
On 17 lutego, 2021 by admin Próbowałem cat /dev/zero
, ale nic nie dało. Wyszukałem w Google i mówi, że jest to w zasadzie pusty plik o nieskończonym rozmiarze. Czy cat
drukuje nieskończoną liczbę nieistniejących znaków? Jak to działa? W jaki sposób dostarcza nieskończonych danych, jeśli ma on 0 bajtów? Jakie są zastosowania tego pliku, jeśli można po prostu utworzyć pusty plik?
Komentarze
Odpowiedź
/dev/zero
to specjalny plik (w tym przypadku pseudourządzenie), który zapewnia niekończący się strumień znaków zerowych (więc szesnastkowo 0x00)? Dlatego właśnie cat
nic nie wyświetla (ale spróbuj uruchomić go przez od
(zrzut ósemkowy)).
„pusty plik o nieskończonym rozmiarze” nie jest w 100% poprawny: nie jest to zwykły plik, ale plik specjalny (bardziej podobny do „strumienia” lub generatora). Możesz przeczytać z niego tyle, ile chcesz, na przykład za pomocą dd
(np. dd if=/dev/zero of=yourfile count=1024 bs=1024
).
W rzeczywistości nie jest to pusty plik ani nie jest używany do tworzenia pustych plików: jest używany do tworzenia plików lub stron pamięci wypełnionych tylko zerami. Możesz też do niego napisać, dzięki czemu będzie działał jak zapadlisko (jego bardziej popularny brat /dev/null
jest do tego częściej używany).
Komentarze
- Dlaczego jednak ktoś miałby chcieć wypełnić puste miejsce?
- Na przykład, aby wymazać to, co było wcześniej. Lub podczas transmisji.
- ' nie przeczytałem
srm
instrukcji lub źródła, ale większość ' bezpieczne kasowniki ' wolą zapisywać (pseudo) losowe dane zamiast zerować dysk, ponieważ jeden przebieg zerowania nie jest wystarczająco bezpieczny (niektóre trzyliterowe agencje nadal mogą odliczyć oryginalną zawartość wyzerowanego dysku twardego, ponieważ poszczególne bity nie są w 100% prawdziwe 1 lub 0, ale tylko " przeważnie 1 " lub " przeważnie 0 ". Porównaj to z dźwignią, którą możesz umieścić " całą drogę w lewo " lub " całą drogę w prawo ", ale zazwyczaj wystarczy przechylenie się na drugą stronę. - @tkbx próbuje
dd
partycję, na której możesz chcieć wypełnić całą pustą przestrzeń do 0 zamiast losowo, aby uzyskać mniejszy skompresowany plik lat er. - @Konerak I ' 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 nowym, zdalnym dysku twardym ( co najmniej w ciągu ostatnich 10 lat).
cat -v /dev/zero
, aby zobaczyć, co robi. Zobacz Wyczyść nieużywane miejsce zerami (ext3, ext4) w zwykłym celu.cat foo > /dev/zero
to to samo, alecat /dev/null
icat /dev/zero
czy nie ' t to samo, prawda?/dev/null
zwraca natychmiast EOF , jeśli program chce z niego odczytać./dev/zero
zwraca nieskończenie 0 bajtów.