Linux笔记 (14)

Linux笔记 (14)

标签(空格分隔): Linux


一、磁碟与目录的容量

df 列出档案系统的整体磁碟使用量;
du 评估档案系统的磁碟使用量。

1. df [-ahikHTm] [目录或档名]

选项 参数
-a 列出所有的档案系统,包括系统特有的 /proc 等档案系统
-k 以 KBytes 的容量显示各档案系统
-m 以 MBytes 的容量显示各档案系统
-h 以人们较易阅读的 GBytes,MBytes,KBytes 等格式自行显示
-H 以 M=1000K 取代 M=1024K 的进位方式
-T 连同该 partition 的 filesystem 名称(例如xfs)也列出
-i 不用磁碟容量,而以 inode 的数量来显示
  • 在 Linux 预设下,df 不加任何选项,则系统内所有的(不含特殊记忆体内的档案系统与swap)都以 1 Kbytes 的容量显示出来。

2.du [-ahskm] 档案或目录名称

选项 参数
-a 列出所有的档案与目录容量,因为预设仅统计目录底下的档案量而已
-h 以人们较易读的容量格式(G/M)显示
-s 列出总量,不列出每个个别目录的占用容量
-S 不包括子目录下的统计,与 -s 有点差别
-k 以 KBytes 列出容量显示
-m 以 MBytes 列出容量显示
  • 直接输入 du 不加任何选项时,则 du 会分析【目前所在目录】的档案与目录所占用的磁碟空间。但是,实际显示时,仅会显示目录容量(不含档案)。因此,目录有很多档案没有被列出来,所以全部的目录相加不等于 . 的容量。此外,输出的数值资料为 1K 大小的容量单位。

二、实体连结与符号连结:ln

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

  • 每个档案都会占用一个 inode,档案内容由 inode 的记录来指向;
  • 想要读取该档案,必须要经过目录记录的档名来指向正确的 inode 号码才能读取。

多个档案名对应到同一个 inode 号码,即是 hard link。hard link 只是在某个目录下新增一笔档名连结到某 inode 号码的关联记录。

hard link 的好处:

  • 安全。如果将任一【档名】删除,其实 inode 与 block 还是存在的。此时可以通过另一档名来读取到档案内容。
  • 此外,无论使用哪个档名来编辑,最终的结果都会写入到相同的 inode 与 block 中,因此均能进行资料的修改。

hard link 的限制:

  • 不能跨越 Filesystem;
  • 不能 link 目录。

2. Symbolic Link(符号连结,即捷径)

Symbolic link 就是在建立一个独立的档案,而这个档案会让资料的读取指向它 link 的那个档案的档名。由于只是利用档案来作为指向的动作,所以,当来源档被删除之后,symbolic link 的档案会打不开。

3. 用法: ln [-sf] 来源档 目标档

选项 参数
-s 如果不加任何参数就进行连结,那就是 hard link,至于 -s 就是 symbolic link
-f 如果目标档存在时,就主动的将目标档直接移除后再建立


例1:将 /etc/passwd 复制到 /tmp 底下,并且观察 inode 与 block
[root@study ~]# cd /tmp
[root@study tmp]# cp -a /etc/passwd .
[root@study tmp]# du -sb;df -i .
141407 .
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/centos-root 2189328 148339 2040989 7% /

例2:将 /tmp/passwd 制作 hard link 成为 passwd-hd 档案,并观察档案与容量
[root@study tmp]# ln passwd passwd-hd
[root@study tmp]# du -sb;df -i .
141407 .
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/centos-root 2189328 148339 2040989 7% /

[root@study tmp]# ls -il passwd*
17661203 -rw-r--r--. 2 root root 2214 Mar 2 19:19 passwd
17661203 -rw-r--r--. 2 root root 2214 Mar 2 19:19 passwd-hd

例3:将 /tmp/passwd 建立一个符号连结
[root@study tmp]# ln -s passwd passwd-so
[root@study tmp]# ls -li passwd*
17661203 -rw-r--r--. 2 root root 2214 Mar 2 19:19 passwd
17661203 -rw-r--r--. 2 root root 2214 Mar 2 19:19 passwd-hd
18113994 lrwxrwxrwx. 1 root root 6 Mar 11 21:32 passwd-so -> passwd

[root@study tmp]# du -sb;df -i .
141413 .
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/centos-root 2187880 148340 2039540 7% /

例4:删除原始档案 passwd,其他两个档案是否能够开启?
[root@study tmp]# rm passwd
rm: remove regular file ‘passwd’? y
[root@study tmp]# cat passwd-hd
......(正常显示)
[root@study tmp]# cat passwd-so
cat: passwd-so: No such file or directory
[root@study tmp]# ll passwd*
-rw-r--r--. 1 root root 2214 Mar 2 19:19 passwd-hd
lrwxrwxrwx. 1 root root 6 Mar 11 21:32 passwd-so -> passwd

4. 关于目录的 link 数量

当建立一个新目录名称为 /tmp/testing 时,里面至少存在三个东西,就是

  • /tmp/testing
  • /tmp/testing/.
  • /tmp/testing/..

所以,当建立一个新的目录时,新的目录的 link 数为 2 ,而上层目录的 link 数则会加 1。


[root@study ~]# ls -ld /tmp
drwxrwxrwt. 20 root root 4096 Mar 11 22:14 /tmp
[root@study ~]# mkdir /tmp/testing2
[root@study ~]# ls -ld /tmp
drwxrwxrwt. 21 root root 4096 Mar 11 22:15 /tmp
[root@study ~]# ls -ld /tmp/testing2
drwxr-xr-x. 2 root root 6 Mar 11 22:15 /tmp/testing2

posted @ 2018-04-24 23:43  Y_momo  阅读(43)  评论(0)    收藏  举报