Linux目录结构
与Window系统不同的是,Window系统的目录结构是森林,而Linux的目录结构只有一颗树,树的根是根目录,Linux中的文件夹和文件都在根目录下。
Linux目录实际上是一个虚拟目录,是逻辑上的组织关系,某个文件或目录在硬盘上存在哪,在一开始对硬盘进行分区和挂载点的时候就完成了它们之间的一一映射关系(也就是说一个目录只对应一个分区)。
挂载点
比如对于引导分区,我们想在系统启动时,把引导文件放到引导分区中去,与其它的文件隔离开,单独保存,我们就可以将引导分区直接挂载到相应的目录下去,这样一来在该目录下的所有文件的内容都会写入引导分区中去。假如还有一个分区(根分区),那么它将会挂载到根目录下,这样除了放在引导分区的目录中的内容,其它所有在根目录中的内容都会放到这个分区中去。
注意:
- 如果将一个磁盘分区挂载到一个目录上去,那么这个目录对于这个分区来说是一个空目录,在该分区为挂载到该目录上去时,该目录中存在的内容时其它分区上的,对应当前分区时不可见的;
- 如果当前磁盘分区中存储了内容,并且已经挂载到了相应的目录上,那么可以通过访问这个目录来读取这些内容。
示例
在此之前,需要知道mount/umount、lsblk 命令。
mount/umount:将设备挂载/卸载
基本语法:
mount [设备所在位置] [目录]
umount [设备所在位置/目录]
lsblk:查看设备挂载情况
完整代码如下,每一步有具体的解释:
# 首先在根分区中创建两个目录 test1 test2
[root@hadoop100 ~]# mkdir test1 test2
# 在 test1目录 下创建 file1文件
[root@hadoop100 ~]# touch test1/file1
# 查看文件
[root@hadoop100 ~]# ls test1/
file1
# 使用 lsblk命令 查看设备挂载情况, sdb1分区 还未挂载
[root@hadoop100 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 4G 0 part [SWAP]
└─sda3 8:3 0 45G 0 part /
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
sr0 11:0 1 4.4G 0 rom
# 使用 mount命令 将sbd1分区挂载到 test1目录上去
# mount [设备所在位置] [目录]
[root@hadoop100 ~]# mount /dev/sdb1 test1
# 再次查看目录中的文件 之前的file1文件并不存在 这是因为 file1 保存在了根分区内
# 对于sdb1分区来说 test1目录只是一个空目录
[root@hadoop100 ~]# ls test1
# 然后在test1目录下创建file2文件
[root@hadoop100 ~]# touch test1/file2
# 查看test1目录下的文件 只存在file2文件
[root@hadoop100 ~]# ls test1/
file2
# 将sdb1分区从挂载点卸载
[root@hadoop100 ~]# umount /dev/sdb1
# 然后将sdb1分区挂载到test2目录上
[root@hadoop100 ~]# mount /dev/sdb1 test2
# 再查看test2目录,发现file2文件还存在,这是因为file2已经保存到了sdb1分区了
[root@hadoop100 ~]# ls test2/
file2