
相关文章Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html一、df该指令能够列出文件系统的整体磁盘使用量。用法df [-ahikHTm] [dirname/filename]-a列出所有的文件系统包括系统特有的/proc等文件系统注此选项只有在未指定dirname/filename时有效。-k以KBytes的单位显示文件系统容量。-m以MBytes的单位显示文件系统容量。-h由系统自行决定以GBytes、MBytes、KBytes等格式显示文件系统容量。-H以M1000K代替M1024K的进位方式。-T同时列出文件系统类型。-i不用存储容量而用inode的数量来显示。示例如下文件系统表示文件系统所在设备名称。1K-块表示单位是1KByte。可以使用-m来改变单位。已用、可用表示已使用和剩下的文件系统空间。挂载点表示这个设备的文件系统挂载到了哪个目录。如果df后面如果加了文件名或目录名df会自动分析该文件或目录所在的文件系统并只列出这个文件系统的信息。我们会发现inode的已用比例和存储空间相比是比较小的。这是因为一个inode可以对应属于一个文件的多个区块。如果我们创建很多小文件那么inode已用比例就会升高。由于df主要读取的数据是针对整个文件系统的读取的范围主要是在超级区块的信息所以这个命令显示结果的速度非常快。另外需要注意的是如果使用-a这个参数系统会出现/proc这个挂载点但是文件系统的占用空间为0。/proc里面的东西都是Linux系统所需要加载的系统数据而且是保存在内存中所以没有占用磁盘存储空间。至于/etc/shm/挂载点其实是挂载了利用内存虚拟出来的磁盘空间通常是总物理内存的一半。在这个目录下建立的任何数据文件其访问速度是非常快的。不过由于是通过内存模拟出来的这个文件系统的大小不定并且建立的数据文件在关机后就会消失因为保存在内存中。二、du该指令能够列出文件或目录在文件系统中占用的存储空间默认是以逻辑块的形式且在统计目录占用空间时和ls命令不同有-b选项的du命令除了统计文件名和inode占用空间外还会包括目录内文件的真实占用空间没有-b选项的du不统计目录的文件名和inode逻辑块占用空间。用法du [-ahskm] [dirname/filename]-a列出目录下的文件、子目录、子目录的子目录和文件....即所有目录和文件的逻辑块占用空间不加-a时默认只显示目录、子目录...。-h由系统自行决定以G、M、K等格式显示逻辑块占用空间。-s只列出目录的逻辑块占用空间而不递归列出目录下所有目录和文件的逻辑块占用空间默认是递归的所以这个选项和-a不能同时使用注意这不代表不统计目录下所有目录和文件的逻辑块占用下面的-S才表示不统计子目录的。-S统计一个目录占用空间时不统计其子目录的逻辑块占用空间只统计目录下的文件占用空间。-k以KBytes列出逻辑块占用空间。-m以MBytes列出逻辑块占用空间。-b以Byte显示出真实占用空间不是以逻辑块为单位示例如下首先我们创建了一个空的目录testls显示该空目录占用6Byte我们再创建一个短文本文件占用5Byte而目录大小变为18Byte这里是因为新增了文件名file和其对应的inode号而他们占用了12Byte所致这里的所说的都是实际占用。接着du命令显示该目录占用4KBytes一个逻辑块du命令并不会统计目录内文件名和inode号所占用的逻辑块创建一个目录至少会给一个逻辑块存储文件名和inode号只会统计目录内文件占用的逻辑块大小意思是一个du一个空目录显示逻辑块占用为0但使用ls或者在后面加上-b后就能看到空目录占用的真实空间。加上了-b选项后才能以Byte为单位显示真实大小此时才会另外统计目录内文件名和inode号所占用的真实空间。目录的总大小23Bytes包括了文件真实空间大小5Bytes和文件内的文件名和inode号所占用的真实空间大小18Bytes这点在ls的输出可以看到。建议自己多在系统中尝试实践才能理解这个命令的正确使用方式。