如何查看主目录下所有目录的GB大小?

如何查看主目录下所有目录的GB大小?

在 Mac 上的 Bash 上,可以执行类似的操作

cd         # go to home directory
ls -d */

获取主目录中文件夹的名称。

我们可以使用

du -sh Documents

以人类可读形式获取文件夹大小的大小。

我尝试过类似的东西

ls -d */ | xargs du -sh 

但它不起作用,因为某些目录具有该名称Tmp Files(用空格分隔的两个单词),这使其成为du -sh Tmp Files.

是否可以对此进行修改,或者是否有一种更简单的方法来处理du -sh所有顶级文件夹以及总计?

答案1

您可以避免 xargs:

du -sc */

仅当您有数千个目录以避免“命令行太长”错误时,使用xargs才有用(但随后将不会有完整的总计,只有每次调用duby的部分总计xarg)。

对于其他命令,为了避免错误解析文件名xargs,请用空值而不是空格或换行符分隔它们:

printf '%s\0' * | xargs -0 du -s 

printf将循环遍历其参数并在末尾使用 NUL 打印它们,并xarg由于其选项而在 NUL 上拆分-0)。这假设它printf是一个内置的 shell (bash),使用二进制文件会有通常的行长度限制。

答案2

总计将是

du -s .

以及各个文件夹(以及可能的文件)的大小

du -s * .*

仅文件夹

du -s */  .*/

相关内容