📌  相关文章
📜  shell 获取目录的大小 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:20:07.960000             🧑  作者: Mango

使用Shell获取目录大小

在Linux上,我们经常需要获取目录的大小,以便了解目录所占用的磁盘空间,本文介绍如何使用Shell命令来获取目录的大小。

1. 使用du命令

du命令可以递归地计算文件夹下各文件的大小,并汇总出总大小。在终端中输入以下命令:

du -sh /path/to/directory

其中,/path/to/directory指的是要获取大小的目录路径。-h选项会以K、M、G等单位显示文件大小。-s选项会汇总目录下所有文件大小,最后只输出一个结果。

输出结果示例:

12G /path/to/directory
2. 使用find和du命令

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
3. 使用ls命令

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
4. 使用stat命令

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获取目录大小的方法,每种方法都有其特点和适用场景,有了这些命令,我们可以方便地计算目录大小,更好地管理和利用磁盘空间。