我想将闪存驱动器格式化为 exFAT,但我想确保设备正确无误。因此,我决定检查 的内容/dev/sda
,我认为闪存驱动器就在那里。但是,当我尝试cd
进入它时,它给了我一个错误,说它不是一个目录。所以我想“哦,这是一个包含有关驱动器内容的所有信息的文件。”因此,我尝试在其上使用 Vim。但这给了我一个错误,说它不是一个文件!
/dev/sda 是文件还是目录?(此外,有没有更好的方法来确保我使用的是正确的设备?)
答案1
/dev/sda
正式是一个文件,因为在 Unix/Linux 中几乎所有东西都是文件. 通常情况下块特殊文件与块设备相关联。您可以将其称为/dev/sda
“设备节点”。我说的“通常”是指“按照惯例”,因为您可以/dev/sda
根据需要将其创建为任何其他文件类型;但每个有线索的用户都会期望它是一个块特殊文件。
一种相对常见的情况/dev/sdX
是,用户向此路径写入内容,但并未首先确保它作为特殊文件存在。向不存在的路径写入内容可能会创建常规文件。比较我的这个答案。
Vim 的意思是你的/dev/sda
文件不是普通文件;cd
告诉你它不是目录。它很可能是一个块特殊设备,这是理所当然的。你可以用ls -l
或 来确认这一点file
。例如:
$ ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 Oct 28 15:35 /dev/sda
$ # That 'b' in front indicates a block special file.
$
$ file /dev/sda
/dev/sda: block special (8/0)
$
有没有更好的方法来确保我使用的是正确的设备?
lsblk
.另请参阅如何检测硬盘是外部 USB 还是内部。
您无法cd
查看/dev/sda
其内容。该设备可能包含一个或多个文件系统,但要浏览文件系统,您需要先挂载它。示例:
mount /dev/sda /mnt
# then browse /mnt/
如果整个设备上都有文件系统,则此命令将有意义。通常有一个分区表;然后文件系统驻留在通过 引用和安装的分区中/dev/sda1
,/dev/sda2
等等。比较这个问题。
答案2
/dev/sda 是设备代号,您无法浏览这些代号,只能将其挂载到真实文件夹(例如 /media/my-usb)然后浏览挂载的文件夹。