Podczas próby przekierowania do /dev/nulli /dev/zerodane wyjściowe są odrzucane. Wydaje się zarówno /dev/nulli /dev/zeroprzyjąć i odrzucić wszystkie dane wejściowe. Jaka jest różnica między /dev/nulli /dev/zero?
Teraz spróbuj cat /dev/zero > file, jednocześnie obserwując, jak rozmiar pliku ( watch -n 1 du -h file) stale rośnie. Jest tak, ponieważ czytanie z /dev/zerodaje nieskończony strumień \0(zerowych) znaków.
Użyj, ddaby lepiej zwizualizować różnicę:
$ dd if=/dev/null of=file count=10
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000276193 s, 0.0 kB/s
$ dd if=/dev/zero of=file count=10
10+0 records in
10+0 records out
5120 bytes (5.1 kB) copied, 0.00090775 s, 5.6 MB/s
/dev/zero służy do tworzenia plików zastępczych lub zamiany.
Warto zauważyć: mmapping /dev/zeroz MAP_PRIVATEjest „przenośnym” sposobem na uzyskanie anonimowego mapowania pamięci (przy braku takich rozszerzeń MAP_ANON).
nneonneo
6
Dla zwykłego czytelnika być może nie jest oczywiste, w jaki sposób/dev/null nie generuje sygnału wyjściowego: natychmiast sygnalizuje EOF.
rm -f /dev/zero ; echo -n 111111111111 > /dev/zero
* ucieka *Odpowiedzi:
Tak, zarówno akceptują, jak i odrzucają wszystkie dane wejściowe, ale ich dane wyjściowe nie są takie same:
/dev/null
nie wytwarza żadnych wyników ./dev/zero
tworzy ciągły strumień NULL (wartość zerowa) bajtów .Możesz zobaczyć różnicę, wykonując
cat /dev/null
icat /dev/zero
.Spróbuj,
cat /dev/null > file
a znajdziesz pustyfile
.Teraz spróbuj
cat /dev/zero > file
, jednocześnie obserwując, jak rozmiar pliku (watch -n 1 du -h file
) stale rośnie. Jest tak, ponieważ czytanie z/dev/zero
daje nieskończony strumień\0
(zerowych) znaków.Użyj,
dd
aby lepiej zwizualizować różnicę:/dev/zero
służy do tworzenia plików zastępczych lub zamiany.Odwiedź także:
źródło
mmap
ping/dev/zero
zMAP_PRIVATE
jest „przenośnym” sposobem na uzyskanie anonimowego mapowania pamięci (przy braku takich rozszerzeńMAP_ANON
)./dev/null
nie generuje sygnału wyjściowego: natychmiast sygnalizuje EOF.