Mục đích của / dev / zero?


49

Tôi đã cố gắng cat /dev/zerovà dường như nó không làm gì cả. Tôi googled /dev/zero, và nó nói về cơ bản nó là một tập tin trống với kích thước vô hạn. Là catin một số lượng vô hạn các ký tự không tồn tại? Cái này hoạt động ra sao? Làm thế nào để nó cung cấp dữ liệu vô hạn nếu nó là 0 byte? Việc sử dụng tệp này là gì, nếu người ta có thể chỉ cần tạo một tệp trống?


11
Chạy cat -v /dev/zerođể xem nó đang làm gì. Xem Xóa không gian chưa sử dụng với số không (ext3, ext4) cho mục đích chung.
thao tác

Ngoài ra còn có / dev / null hoạt động như một tập tin trống nếu bạn muốn đọc nó và như một lỗ đen nếu bạn viết cho nó.
jofel

@jofel nhưng bạn không thể sử dụng / dev / null cho 0 bit vô hạn, phải không? cat foo > /dev/nullcat foo > /dev/zerođều giống nhau, nhưng cat /dev/nullcat /dev/zerokhông giống nhau, có đúng không?
tkbx

@tkbx vâng, đúng rồi. /dev/nulltrả về EOF ngay lập tức nếu một chương trình muốn đọc từ nó. /dev/zerotrả về vô hạn 0 byte.
jofel

Câu trả lời:


53

/dev/zerolà một tệp đặc biệt (trong trường hợp này là thiết bị giả) cung cấp một dòng vô tận các ký tự null (vì vậy hex 0x00)? Đó là lý do tại sao bạn catkhông xuất ra bất cứ thứ gì (nhưng hãy thử chạy qua od(bãi bát phân)).

'tệp trống với kích thước vô hạn' không chính xác 100%: đó không phải là tệp thông thường, mà là tệp đặc biệt (giống như 'luồng' hoặc trình tạo). Bạn có thể đọc bao nhiêu từ nó nếu muốn, ví dụ như với dd(như dd if=/dev/zero of=yourfile count=1024 bs=1024).

Nó không thực sự là một tệp trống , cũng không được sử dụng để tạo các tệp trống: nó được sử dụng để tạo các tệp hoặc các trang bộ nhớ chỉ chứa các số 0. Bạn cũng có thể viết thư cho nó, làm cho nó hoạt động giống như một cái hố chìm (người anh em phổ biến hơn của nó /dev/nullthường được sử dụng cho việc này).


Tại sao một người nào đó muốn lấp đầy không gian trống, mặc dù?
tkbx

5
Ví dụ, để xóa những gì đã có trước đó. Hoặc khi truyền.
Konerak

4
Tôi đã không đọc srmhướng dẫn hoặc nguồn, nhưng hầu hết các 'công cụ xóa an toàn' thích ghi dữ liệu ngẫu nhiên (giả) thay vì không sử dụng ổ đĩa, vì một lần chuyển số 0 không đủ an toàn (một số cơ quan ba chữ cái nhất định vẫn có thể khấu trừ nội dung ban đầu của ổ cứng bằng 0, vì các bit riêng lẻ không thực sự là 100% 1 hoặc 0, mà chỉ là "chủ yếu là 1" hoặc "chủ yếu là 0". So sánh nó với một đòn bẩy mà bạn có thể đặt "hoàn toàn "Hoặc" hoàn toàn đúng ", nhưng thường chỉ cần một cú xoay sang phía bên kia là đủ.
Konerak

11
@tkbx đang cố gắng ddphân vùng, bạn có thể muốn lấp đầy tất cả không gian trống về 0 thay vì ngẫu nhiên để có được một tệp nén nhỏ hơn sau đó.
neurino

1
@Konerak Tôi khá nghi ngờ về điều đó. Tôi đã nghe nó nói ở khắp mọi nơi và tôi chưa bao giờ thấy bằng chứng về điều đó là có thể trên bất kỳ ổ cứng mới từ xa nào (ít nhất là trong 10 năm qua).
Cướp
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.