Trong hệ điều hành máy tính, tập tin đặc biệt là một loại tệp được lưu trữ trong một hệ thống tệp. Một tệp đặc biệt đôi khi còn được gọi là tập tin thiết bị.

Mục đích của tệp đặc biệt là để hiển thị thiết bị dưới dạng tệp trong hệ thống tệp. Một tệp đặc biệt cung cấp một giao diện chung cho các thiết bị phần cứng (và các thiết bị ảo được tạo và sử dụng bởi hạt nhân), vì các công cụ cho I / O tệp có thể truy cập vào thiết bị.

Khi dữ liệu bị chuyển sang màu đỏ từ hoặc được ghi vào một tệp đặc biệt, hoạt động sẽ xảy ra ngay lập tức và không tuân theo các quy tắc hệ thống tệp thông thường.

Trong Linux, có hai loại tệp đặc biệt: chặn tệp đặc biệt tập tin đặc biệt.

Chặn các tệp đặc biệt

block special file hoạt động như một giao diện trực tiếp với một thiết bị khối. Thiết bị khối là bất kỳ thiết bị nào thực hiện nhập / xuất dữ liệu theo đơn vị khối.

Ví dụ về chặn các tệp đặc biệt:

  • / dev / sd xn – phân vùng gắn kết của các thiết bị lưu trữ vật lý. Lá thư x đề cập đến một thiết bị vật lý và số N đề cập đến một phân vùng trên thiết bị đó. Ví dụ, / dev / sda1 là phân vùng đầu tiên trên thiết bị lưu trữ vật lý đầu tiên.
  • / dev / loop N – thiết bị vòng lặp. Đây là những thiết bị đặc biệt cho phép một tệp trong hệ thống tệp được sử dụng như một thiết bị khối. Tệp có thể chứa toàn bộ hệ thống tệp của riêng nó và được truy cập như thể nó là một phân vùng được gắn kết trên thiết bị lưu trữ vật lý. Ví dụ: tệp ảnh đĩa ISO có thể được gắn kết dưới dạng thiết bị vòng lặp.

Nếu bạn muốn biết khối lớn như thế nào trên hệ thống của mình, hãy chạy “ blockdev –getbsz thiết bị”Dưới dạng gốc, ví dụ:

sudo blockdev --getbsz /dev/sda1
4096

Trong ví dụ này, kích thước khối là 4096 byte (4 kibibyte).

Các tệp đặc biệt của ký tự

character special file tương tự như thiết bị khối, nhưng dữ liệu được ghi một ký tự (tám bit hoặc một byte) tại một thời điểm.

Ví dụ về các tệp ký tự đặc biệt:

  • / dev / stdin (Đầu vào chuẩn.)
  • / dev / stdout (Đầu ra chuẩn.)
  • / dev / stderr (Lỗi chuẩn.)
  • / dev / random (PRNG có thể trì hoãn việc trả về một giá trị để thu được entropy bổ sung.)
  • / dev / urandom (PRNG luôn trả về một giá trị ngay lập tức, bất kể entropy bắt buộc.)
  • / dev / null (Thiết bị rỗng. Việc đọc từ tệp này luôn nhận được một byte rỗng; việc ghi vào tệp này thành công không làm gì cả.)

Các loại tệp Linux

Trong nhân Linux, các loại tệp được khai báo trong tệp tiêu đề sys / stat.h. Tên loại, tên tượng trưng và mặt nạ bit cho mỗi loại tệp Linux được liệt kê bên dưới.

Làm cách nào để biết một tập tin có phải là đặc biệt hay không?

Kiểm tra khối đặc biệt

Trong bash, lệnh “test -b tập tin”Trả về trạng thái thoát là 0 nếu tập tin là khối đặc biệt, hoặc 1 nếu tập tin là một loại khác hoặc không tồn tại.

test -b /dev/sda1; echo $?   # check for block special, echo exit status of test
0
test -b /dev/null; echo $?   # character special files are not block special
1

Kiểm tra ký tự đặc biệt

Để xác định xem một tệp có ký tự đặc biệt hay không, hãy sử dụng “test -c tập tin“:

test -c /dev/null; echo $?
0

Sử dụng thống kê

Bạn cũng có thể kiểm tra loại tệp với thống kê:

stat /dev/sda1
File: /dev/sda1
  Size: 0           Blocks: 0          IO Block: 4096   block special file Device: 6h/6d Inode: 7998 Links: 1 Device type: 8,1 Access: (0660/brw-rw----) Uid: ( 0/ root) Gid: ( 6/ disk) Access: 2018-07-08 06:41:25.540000000 -0400 Modify: 2018-07-08 06:41:25.540000000 -0400 Change: 2018-07-08 06:41:25.540000000 -0400 Birth: -
stat /dev/random
File: /dev/random
  Size: 0           Blocks: 0          IO Block: 4096   character special file Device: 6h/6d Inode: 6518 Links: 1 Device type: 1,8 Access: (0666/crw-rw-rw-) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2018-07-08 06:41:19.676000000 -0400 Modify: 2018-07-08 06:41:19.676000000 -0400 Change: 2018-07-08 06:41:19.676000000 -0400 Birth: -

Inode, Điều khoản hệ điều hành, Đầu vào chuẩn (stdin), Đầu ra chuẩn (stdout).

Chúng tôi hy vọng rằng bài viết này bao gồm tất cả các phương pháp cho tệp đặc biệt. Nếu bạn thấy bài viết này thực sự hữu ích với bạn, hãy chia sẻ thông tin này đến bạn bè, người thân, gia đình và những người khác của bạn. Hẹn gặp lại các bạn trong những bài viết tiếp theo với helpsly.net!