Câu trả lời:
Có, cả hai đều chấp nhận và loại bỏ tất cả đầu vào, nhưng đầu ra của chúng không giống nhau:
/dev/null
sản xuất không có đầu ra ./dev/zero
tạo ra một luồng liên tục các byte NULL (giá trị 0) .Bạn có thể thấy sự khác biệt bằng cách thực hiện cat /dev/null
và cat /dev/zero
.
Hãy thử cat /dev/null > file
và bạn sẽ tìm thấy một sản phẩm nào file
.
Bây giờ hãy thử cat /dev/zero > file
, trong khi xem kích thước của tệp ( watch -n 1 du -h file
) liên tục tăng. Điều này là do đọc từ /dev/zero
cung cấp một dòng vô tận các \0
ký tự (null).
Sử dụng dd
để hình dung sự khác biệt một cách phù hợp hơn:
$ 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
được sử dụng để tạo tập tin giả hoặc trao đổi.
Cũng ghé thăm:
mmap
ping /dev/zero
với MAP_PRIVATE
là cách "di động" để có được ánh xạ bộ nhớ ẩn danh (trong trường hợp không có tiện ích mở rộng như MAP_ANON
).
/dev/null
tạo ra không có đầu ra: Nó báo hiệu EOF ngay lập tức.
rm -f /dev/zero ; echo -n 111111111111 > /dev/zero
* chạy đi *