文件系统的简单操作
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