Tất cả các tệp trong /dev
là các tệp đặc biệt ... chúng đại diện cho các thiết bị của máy tính. Chúng được tạo bằng syscall mknod
. Câu hỏi của tôi là: Làm cách nào để biết số nhỏ và các số chính được sử dụng để tạo tệp đặc biệt này?biết một tập tin đặc biệt của thiết bị và số nhỏ trong linux
Trả lời
Danh sách này được gọi là Danh sách thiết bị LANANA Linux và được quản lý bởi Alan Cox.
Bạn có thể tìm thấy latest copy trực tuyến (direct link) hoặc trong nguồn Linux. Tên tệp của nó trong cây hạt nhân là Documentation/devices.txt
.
Để xem những con số lớn và nhỏ đã tạo ra một nút trong /dev
(hoặc bất kỳ nút thiết bị cho rằng vấn đề), chỉ cần sử dụng ls
với -l
tùy chọn:
22:26 [email protected]% ls -l /dev/xvd?
brw-rw---- 1 root disk 202, 0 Nov 1 20:31 /dev/xvda
brw-rw---- 1 root disk 202, 16 Nov 1 20:31 /dev/xvdb
brw-rw---- 1 root disk 202, 32 Nov 1 20:31 /dev/xvdc
Trong ví dụ này, 202
là ba số chính của thiết bị và 0
, 16
và 32
là trẻ vị thành niên. Các b
ở bên trái chỉ ra rằng nút là một thiết bị khối. Cách khác là c
, một thiết bị nhân vật:
crw-rw-rw- 1 root tty 5, 0 Nov 22 00:29 /dev/tty
$ ls -l /dev/fd0 /dev/null brw-rw---- 1 root floppy 2, 0 Nov 22 19:48 /dev/fd0 crw-rw-rw- 1 root root 1, 3 Nov 22 19:48 /dev/null $ stat -c '%n: %F, major %t minor %T' /dev/fd0 /dev/null /dev/fd0: block special file, major 2 minor 0 /dev/null: character special file, major 1 minor 3
Hầu hết số thiết bị được cố định (ví dụ: /dev/null
sẽ luôn là nhân vật thiết bị 1:3
) nhưng trên Linux, một số được cấp phát động.
$ cat /proc/devices Character devices: ... 10 misc ... Block devices: ... 253 mdp 254 device-mapper $ cat /proc/misc ... 57 device-mapper ...
Ví dụ, trên hệ thống này, nó chỉ như vậy sẽ xảy ra rằng /dev/mapper/control
sẽ c:10:57
trong khi phần còn lại của /dev/mapper/*
sẽ b:254:*
, và điều này có thể khác với một chu trình khởi động khác - hoặc thậm chí là mô-đun được nạp/unloaded và các thiết bị được thêm vào/gỡ bỏ.
Bạn có thể khám phá thêm các đăng ký thiết bị này trong /sys
.
$ readlink /sys/dev/block/2:0 ../../devices/platform/floppy.0/block/fd0 $ cat /sys/devices/platform/floppy.0/block/fd0/dev 2:0 $ readlink /sys/dev/char/1:3 ../../devices/virtual/mem/null $ cat /sys/devices/virtual/mem/null/dev 1:3
Bạn cũng có thể sử dụng chỉ số.
$ stat -c 'major: %t minor: %T' <file>
Đặc biệt đối với các thiết bị khối:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 90G 0 disk
├─sda1 8:1 0 4G 0 part [SWAP]
├─sda2 8:2 0 4G 0 part/
Alternative mà không phụ thuộc vào stat
:
$ cat /sys/class/*/random/dev
1:8
- 1. Khôi phục tập tin Linux bị xóa
- 2. Kéo các tập tin đặc biệt với ADB
- 3. kí tự đặc biệt trong tập tin web.config
- 4. ICSharpCode.SharpZipLib.Zip.FastZip không nén file có ký tự đặc biệt trong tên tập tin của họ
- 5. md5sum của tập tin trong Linux C
- 6. Gỡ lỗi thiết bị iPad với thông tin nhỏ
- 7. xóa các ký tự đặc biệt khỏi một tệp trong linux
- 8. là gì lĩnh vực số phiên bản trong đầu ra của lệnh tập tin Linux
- 9. Hành vi đặc biệt của hành vi đặc biệt (lạ?)
- 10. ký tự đặc biệt trong bài tập "file_exists" (php)
- 11. Trình điều khiển thiết bị Linux, Có thể lấy số nhỏ bằng cách sử dụng bộ mô tả tệp không?
- 12. Cách tải tuyến đường hoặc tập tin âm thanh của thiết bị âm thanh từ thiết bị trong Android?
- 13. Thay đổi quyền truy cập tập tin của nhiều tập tin qua thiết bị đầu cuối Unix
- 14. Làm thế nào để tìm thấy sự khác biệt thiết lập của hai tập tin?
- 15. đặc biệt ngẫu nhiên số
- 16. Chặn thông tin thiết bị mà không cần gắn (trong linux)
- 17. Tin nhắn GCM của Android cho một thiết bị khác
- 18. Regex cho phép tập tin Linux (ký hiệu số)
- 19. Java đường dẫn tập tin trong Linux
- 20. Trình mô tả tập tin java của tôi sẽ "xấu" và tôi không biết tại sao
- 21. Tại sao một quảng cáo đặc biệt không thể cài đặt trên một thiết bị, nhưng thành công trên một thiết bị khác có cùng phiên bản iOS?
- 22. JSP và tập lệnh nhỏ
- 23. ".android" thư mục và 'debug.keystore' tập tin bị mất
- 24. "Không có tập tin hoặc thư mục" cố gắng thực thi nhị phân linux trên thiết bị Android
- 25. linux - viết lệnh từ một thiết bị đầu cuối đến một thiết bị đầu cuối khác
- 26. java đọc tập tin từ thiết bị mạng
- 27. Cách kiểm tra xem chuỗi có ít nhất một chữ cái, số và ký tự đặc biệt trong php
- 28. Làm thế nào để Ruby biết nơi để tìm một tập tin cần thiết?
- 29. Lập trình Linux C: Cách nhận thông tin phân vùng của thiết bị?
- 30. Bluetooth không gửi tập tin đến thiết bị khác
hey cảm ơn! nhưng tôi đã hỏi làm thế nào để làm điều này bằng dòng lệnh ...: D –
Thực hiện điều gì bằng dòng lệnh? Câu hỏi của bạn không nói bất cứ điều gì về dòng lệnh, ngoại trừ 'mknod'. –
Bạn nói đúng. Tôi xin lôi. Dù sao, đó là câu trả lời tôi muốn. –