遵化市建昌街城源电脑经销部

关键词:电脑知识网

新闻中心

Linux系统中如何排查是哪些文件占用了目录空间,导致目录空间利率高?

栏目:硬件帮助 日期: 作者:admin 阅读:4

在Windows系统中,如果我们想要排查是哪些文件占用了磁盘空间,直接右键相应的文件或文件夹,选择【属性】即可查看,但要排查Linux系统中是哪些文件占用了目录空间,导致目录空间利率高?就得了解下du这个命令,du(disk usage)命令是Linux和Unix系统中用于估计文件和目录占用的磁盘空间大小的工具。它对于管理磁盘空间、查找占用大量空间的文件和目录特别有用。它会递归地计算指定目录下所有文件和子目录的大小,并以可读性较好的方式显示出来。

基本用法

用法:


du [选项]... [文件]...

  或:


du [选项]... --files0-from=F

递归地总结一组文件的磁盘使用情况。

长选项的必选参数对于短选项也是必选的。




  -0, --null            每行输出以NUL而不是换行符结尾  -a, --all             计算所有文件的大小,而不仅仅是目录      --apparent-size   打印表面大小,而不是磁盘使用量;虽然表面大小通常较小,但由于('稀疏')文件中的空洞、内部碎片、间接块等原因,它可能更大  -B, --block-size=SIZE  在打印之前按SIZE缩放大小;例如,'-BM'以1,048,576字节为单位打印大小;请参阅下面的SIZE格式  -b, --bytes           等同于'--apparent-size --block-size=1'  -c, --total           生成总计  -D, --dereference-args  仅解引用命令行上列出的符号链接  -d, --max-depth=N     仅在目录(或文件,使用--all)的层次结构低于命令行参数的N级时才打印总计;--max-depth=0与--summarize相同      --files0-from=F   总结在文件F中指定的以NUL结尾的文件名的磁盘使用情况;如果F为-,则从标准输入读取名称  -H                    等同于--dereference-args(-D)  -h, --human-readable  以人类可读的格式打印大小(例如,1K 234M 2G)      --inodes          列出inode使用信息而不是块使用信息  -k                    等同于--block-size=1K  -L, --dereference     解引用所有符号链接  -l, --count-links     如果有硬链接,则多次计算大小  -m                    等同于--block-size=1M  -P, --no-dereference  不要跟随任何符号链接(这是默认设置)  -S, --separate-dirs   对于目录,不包括子目录的大小      --si              类似于-h,但使用1000而不是1024的幂  -s, --summarize       仅显示每个参数的总计  -t, --threshold=SIZE  排除小于SIZE的条目(如果为正数), 或大于SIZE的条目(如果为负数)      --time            显示目录中任何文件或其子目录的**修改时间      --time=WORD       以WORD而不是修改时间显示时间:atime,access,use,ctime或status      --time-style=STYLE  使用STYLE显示时间,可以是:full-iso,long-iso,iso或+FORMAT;  FORMAT的解释方式与'date'相同  -X, --exclude-from=FILE  排除与FILE中的任何模式匹配的文件      --exclude=PATTERN    排除与PATTERN匹配的文件  -x, --one-file-system    跳过不同文件系统上的目录      --help     显示此帮助并退出      --version  输出版本信息并退出

显示的值以--block-size、DU_BLOCK_SIZE、BLOCK_SIZE和BLOCKSIZE环境变量中的**个可用的SIZE为单位。否则,默认单位为1024字节(如果设置了POSIXLY_CORRECT,则为512字节)。SIZE参数是一个整数和可选的单位(例如:10K是10*1024)。单位可以是K、M、G、T、P、E、Z、Y(1024的幂次方)或KB、MB、...(1000的幂次方)。

示例

1、查看当前目录及其子目录的磁盘使用情况(默认不显示隐藏文件,但会显示子目录的总大小):


du

2、以易读的格式查看当前目录及其子目录的磁盘使用情况:


du -h

3、仅显示当前目录的总大小:


du -sh .

这里.代表当前目录,-s表示仅显示总计,-h表示以易读格式显示。

4、查看特定目录(如/var/log)的磁盘使用情况:


du -sh /var/log

5、限制显示的目录深度:


du -h --max-depth=1

这将仅显示当前目录下的一级子目录及其大小。

6、排除特定模式的文件或目录:


du -sh --exclude='*.log'

这将会计算当前目录的总大小,但会排除所有.log扩展名的文件。

7、人类可读格式:

du -h:以易于阅读的格式(KB, MB, GB)显示磁盘使用量。


du -h /var/log

8、排除目录:

du --exclude=pattern:排除匹配特定模式的文件或目录。


du --exclude=*.tmp /home/user 排除所有扩展名为.tmp的文件。

9、**文件限制:

du -m:显示每个文件和目录的磁盘使用量,单位为MB。


du -m /etc

10、递归显示:

du -r:递归显示指定目录的磁盘使用量。


du -r /var/cache

11、按大小排序

du -S:显示目录的总磁盘使用量,并按大小排序。


du -S /home/user

12、显示文件系统块大小:

du -B size:显示指定大小的块的磁盘使用量。


du -B 1M /var 以1MB为单位显示磁盘使用量。

13、显示所有文件:

du -a:显示目录中所有文件的磁盘使用量,包括文件本身。


du -a /var/lib

14、显示文件的磁盘使用量:

du -L symbolic-link:显示符号链接指向的文件的磁盘使用量。


du -L /path/to/symlink

15、显示文件的磁盘使用量,不包括符号链接:

du -P:显示文件的磁盘使用量,忽略符号链接。


du -P /var/lib

16、显示磁盘使用量并排序:

du -h --max-depth=1 | sort -h:显示当前目录的每个子目录的磁盘使用量,并以人类可读的格式排序。


du -h --max-depth=1 | sort -h

du命令使用注意事项

在使用du命令时,有一些注意事项需要注意:

du命令默认会递归地计算指定目录下所有文件和子目录的大小。如果目录结构非常复杂或文件数量非常多,可能会导致计算时间较长。可以使用-s选项仅显示总计大小,以提高计算速度。

du命令默认以块为单位显示文件大小。可以使用-h选项以人类可读的方式显示文件大小,更容易理解。

du命令会计算所有文件和目录的大小,包括隐藏文件。如果只想计算非隐藏文件的大小,可以使用-a选项。

默认情况下,du命令会计算指定目录下所有文件和子目录的大小,包括其他文件系统挂载点上的文件大小。如果只想计算指定目录下的文件和子目录的大小,可以使用-x选项。

du命令会计算符号链接本身的大小,而不是符号链接指向的文件或目录的大小。如果想计算符号链接指向的文件或目录的大小,可以使用-L选项。

du命令默认会显示所有文件和目录的大小,包括每个文件和目录的详细信息。如果只想显示总计大小,可以使用-s选项。

du命令需要有足够的权限才能访问文件和目录。如果没有足够的权限,可能无法计算某些文件或目录的大小。

du命令可以结合其他命令一起使用,例如使用管道符号|将du命令的输出传递给其他命令进行进一步处理。



相关资讯