📅  最后修改于: 2023-12-03 15:20:07.960000             🧑  作者: Mango
在Linux上,我们经常需要获取目录的大小,以便了解目录所占用的磁盘空间,本文介绍如何使用Shell命令来获取目录的大小。
du命令可以递归地计算文件夹下各文件的大小,并汇总出总大小。在终端中输入以下命令:
du -sh /path/to/directory
其中,/path/to/directory
指的是要获取大小的目录路径。-h
选项会以K、M、G等单位显示文件大小。-s
选项会汇总目录下所有文件大小,最后只输出一个结果。
输出结果示例:
12G /path/to/directory
find命令可以筛选出符合条件的文件,并作为参数传递给du命令,以计算它们的大小。在终端中输入以下命令:
find /path/to/directory -type f -print0 | du --files0-from=- -ch /path/to/directory
该命令会列出指定目录下的所有文件,并将其传递给du命令进行计算。-type f
参数是指仅筛选出文件类型,-print0
参数是指使用'\0'字符分隔文件名。--files0-from=-
参数是指从标准输入中读取文件名列表。-c
选项会显示总大小。
输出结果示例:
90M /path/to/directory/config.py
20M /path/to/directory/README.md
107M total
ls命令可以列出指定目录下的所有文件和目录,并读取它们的大小信息。在终端中输入以下命令:
ls -sh /path/to/directory
其中,/path/to/directory
指的是要获取大小的目录路径。-h
选项会以K、M、G等单位显示文件大小,-s
选项会显示文件占用的块数大小。
输出结果示例:
4.0K dir1
8.0K dir2
20K file1.txt
28K total
stat命令可以读取指定文件或目录的元数据信息,包括大小。在终端中输入以下命令:
stat -c %s /path/to/directory
其中,/path/to/directory
指的是要获取大小的目录路径。-c %s
参数是指输出文件大小的信息。
输出结果示例:
1048576
上述命令输出的是字节数,如果要转换成K、M、G等单位,可以使用Shell算术运算符,如:
echo "$(( $(stat -c %s /path/to/directory) / 1024 )) K"
输出结果示例:
1024 K
以上就是几种使用Shell获取目录大小的方法,每种方法都有其特点和适用场景,有了这些命令,我们可以方便地计算目录大小,更好地管理和利用磁盘空间。