Câu trả lời:
/dev/nullkhông thực sự là một tập tin. Đó là một thiết bị nhân vật !
$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Apr 10 09:53 /dev/null
Chữ cái đầu tiên ccủa chuỗi quyền ( crw-rw-rw-) chỉ ra điều này. Đối với các tập tin thông thường, nó sẽ là một -thay thế.
Vì vậy, nói một cách dễ dàng: /dev/nullkhông phải là một tệp mà là một thiết bị ảo được ánh xạ tới đường dẫn này trong hệ thống tệp, mục đích duy nhất là nuốt và biến mất dữ liệu - giống như một lỗ đen.
Nó cũng có thể được sử dụng làm đầu vào, sau đó nó hoạt động như một tệp trống (kích thước 0) và ngay lập tức trả về EOF (End Of File).
Do đó, bạn không thể thực sự nói rằng /dev/nullcó kích thước tệp cụ thể, vì đó không phải là tệp thông thường trên bất kỳ phương tiện lưu trữ nào.
/dev/nulllà một loại tệp đặc biệt gọi là " tệp thiết bị ".
Các tập tin thiết bị hoạt động như một giao diện cho một số chức năng kernel. Họ chỉ chiếm không gian cần thiết cho một mục nhập thư mục (" inode ") nhưng không có bất kỳ nội dung thực sự nào và không có kích thước tệp thực tế.
Các tệp thiết bị khác là ví dụ /dev/sda(nói chung là ổ cứng hoặc SSD), /dev/zero(tệp tạo ra số 0 khi đọc) hoặc /dev/random(tệp tạo dữ liệu ngẫu nhiên khi đọc). Trên thực tế về tất cả các tệp trong /dev/là tệp thiết bị hoặc liên kết trỏ đến tệp thiết bị.
mknodđể tạo tệp thiết bị ở bất cứ đâu bạn muốn). Đối với các hệ thống tệp ảo như /dev/inode không chiếm dung lượng đĩa mà chỉ có một số bộ nhớ.
lsvà dubáo cáo kích thước của một thiết bị đặc biệt như /dev/nullhoặc /dev/randommang lại 0 .