/dev/sda 是文件还是目录?

/dev/sda 是文件还是目录?

我想将闪存驱动器格式化为 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)然后浏览挂载的文件夹。

相关内容