欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

文件系统的简单操作

程序员文章站 2024-02-27 23:51:27
...

文件系统的简单操作

1.磁盘与目录的容量

磁盘的整体数据是在 superblock 区块中,但是每个各别文件的容量则在 inode 当中记载的。

 df:列出文件系统的整体磁盘使用量;

 du:评估文件系统的磁盘使用量(常用在推估目录所占容量)

1.df

df -ahikHTm+[目录或文件名]

选项与参数:

-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;

-k :以 KBytes 的容量显示各文件系统;

-m :以 MBytes 的容量显示各文件系统;

-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

-H :以 M=1000K 取代 M=1024K 的进位方式;

-T :连同该 partition 的 filesystem 名称 (例如 xfs) 也列出;

-i :不用磁盘容量,而以 inode 的数量来显示

2.du

du [-ahskm] 文件或目录名称

选项与参数:

-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。

-h :以人们较易读的容量格式 (G/M) 显示;

-s :列出总量而已,而不列出每个各别的目录占用容量;

-S :不包括子目录下的总计,与 -s 有点差别。

-k :以 KBytes 列出容量显示;

-m :以 MBytes 列出容量显示;

2.实体链接与符号链接 :ln

1.Hard Link(实体链接,硬式连结或实际连结)

 每个文件都会占用一个 inode ,文件内容由 inode 的记录来指向;

 想要读取该文件,必须要经过目录记录的文件名来指向到正确的 inode 号码才能读取。

文件名只与目录有关,但是文件内容与inode有关,所谓hard link只是在某个目录下新增一笔档名链接到某inode号码的关连记录。

作用:安全!如果将任何一个档名删除,其实inode和block都存在的,此时可以透过另一个档名来读取到正确的文件数据,且无论使用哪个来编辑,最终结果都很写入相同的inode与block。

hard link 只是在某个目录下的 block 多写入一个关连数据而已,既不会增加 inode 也不会耗用 block 数量!

限制:不能跨Filesystem,不能link目录

2.Symbolic Link(符号链接,即是快捷方式)

ln -s

Symbolic link 就是在建立一个独立的文件,而这个文件会让数据的读取指向他 link 的那个文件的档名。当来源档被删除之后,symbolic link 的文件会开不了,实际上就是找不到原始『档名』而已。

比如符号链接之后,连接档的重要内容就是他会写上目标文件的文件名,会占用相应的bytes。

Symbolic Link 与 Windows 的快捷方式可以给他划上等号,由 Symbolic link 所建立的文件为一个独立的新的文件,所以会占用掉 inode 与 block

3.制作连结档ln

ln [-sf] 来源文件 目标文件

选项与参数:

-s :如果不加任何参数就进行连结,那就是 hard link,至于 -s 就是 symbolic link

-f :如果 目标文件 存在时,就主动的将目标文件直接移除后再建立!

4.关于目录的Link数量

当我们建立一个新目录名称为 /tmp/testing 时,基本上会有三个东西,那就是:

 /tmp/testing

 /tmp/testing/.

 /tmp/testing/..

而其中 /tmp/testing 与 /tmp/testing/. 其实是一样的!都代表该目录,而 /tmp/testing/.. 则代表 /tmp

这个目录,当我们建立一个新的目录时, 新的目录的 link 数为 2 ,而上层目录的 link 数则会增加 1