我的/home
分区已打开/dev/sda1
。我的/
分区已打开/dev/sda2
。
每当我在分区中创建文件时,/home
它都会显示在目录/
下的分区中/home
。
Windows相当于在D盘创建一个文件,该文件在C盘也可见。
这怎么可能 ?
答案1
如果您今天的文件系统体验基于 Windows 或单磁盘/分区系统,那么您可能不习惯挂载点的概念。 (尽管 Windows 现在也支持在挂载路径上挂载磁盘,但这并不像 Linux/Unix 中那么常见)
Linux/Unix 中的文件系统是一个嵌套的文件层次结构。 (文件夹也是文件..)
你从 开始/
。一切的根源。就您而言,这是在分区上/dev/sda2
。随着/home
on /dev/sda1
,你最终会得到
/
dev/
pts/
- (东西)
sys/
home/
rebecca/
txtfile.txt
bob/
等等(还有很多目录,这只是一个例子)
/
因此,从->开始的路径/home/rebecca/textfile.txt
应尽可能透明。因此,虽然看起来textfile.txt
位于/
分区中,但实际上并非如此。它在/home/
分区中。只是这样那分区位于目录mounted
中。/
/home
尝试这三个命令:
df /
df /home/
df /home/rebecca/textfile.txt
<-- 使用文件的真实路径
该df
命令将显示运行该命令时安装在系统上的所有文件系统(真实的和虚拟的)。正如我在上面的示例中所使用df
的那样,可以过滤输出,以便您一次检查更少的内容。
长话短说- 这就是 Unix 和 Linux 挂载点的工作原理,使所有不同的磁盘一起显示为一个内聚的文件和目录树。
答案2
在 POSIX 文件系统中,一切存在于文件系统根目录内部的某个位置,位于/
.在您安装在 的根分区上/
,您有一个目录/home
。该目录(大概)被用作挂载点(即已安装的文件系统(例如分区)所在的位置)用于home
分区。在那里创建的文件是在分区中创建home
,其内容在该分区的安装点上可见。
尽管使内容/home
消失会引起问题,但如果您要:
# umount /home; mount /dev/sda1 /mnt; ls /mnt
你会看到什么内容有曾经在/home
,现在可见于/mnt
。
实际上不要这样做;这是一个示范性的思想实验。
mount
在不给定任何参数的情况下,通过观察命令的输出,您可以看到在哪些安装点安装了哪些文件系统的列表。
答案3
包含您自己的文件的文件系统(分区)可以放置在文件系统树中的任何位置,文件系统树以/
.通常它放置在/home
并且其中有一个以您的用户名命名的目录。例如,您可能有/home/rebecca
.
基于 UNIX 的系统(包括基于 Linux 的系统)使用单根文件系统 ( /
)。 Windows 系统使用多根文件系统(C:
、D:
等)。
当您将文件写入某个位置时,通常不需要担心它被写入哪个分区,只要有足够的磁盘空间来保存文件的内容即可。