UNIX:仅查看目录的磁盘使用情况统计信息

UNIX: Viewing Disk Usage statistics with directories only

我正在编写一个带有菜单和一些选项的脚本,您可以 select 执行这些操作。我目前停留在最后一个选项上,因为它要求您以人类可读的格式计算主目录中所有目录的磁盘使用统计信息。

我知道磁盘使用和人类可读格式的命令是什么,但我只需要帮助列出主目录中目录的名称。我希望我可以将这些名称放入变量中以与 DU 命令一起使用。

关于如何解决这个问题有什么建议吗?

您可以使用此行列出主目录中的目录: ls /home/user -d */ 我真的不知道为什么你需要把它们放在一个变量中,但是用管道输送它们 du 就像 ls /home/user-d */ | du -h

您需要调整 find 选项:

for i in $(find "$HOME" -maxdepth 1 -type d | tail -n+2); do 
    du -hs "$i"
done

您可以通过删除对 tail:

的调用,将 . link 作为家庭的总数
for i in $(find "$HOME" -maxdepth 1 -type d); do 
    du -hs "$i"
done

sizedir names 都放入一个(或两个)变量中的最简单方法是将 find/du -hs 命令的结果写入临时文件,然后将 sizedirnames 读入 关联数组 (BASH 4+) 或将 size 读入 索引数组并使用read命令将dir names读入第二个索引数组。这可以通过在子 shell 中执行上面的代码来完成:

( for i in $(find "$HOME" -maxdepth 1 -type d | tail -n+2 ); do du -hs "$i"; done ) > tmpfile

然后只需readtmpfile的内容放入您选择的数组中。如果您有任何问题,请告诉我。