0

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

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

关于如何解决这个问题的任何建议?

4

2 回答 2

0

您可以使用以下行列出主目录中的目录: ls /home/user -d */ 我真的不知道为什么需要将它们放在变量中,但是使用 du 管道它们就像 ls /一样简单家庭/用户 -d */ | 嘟 -h

于 2015-02-27T22:53:01.163 回答
0

您需要调整find选项:

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

您可以.通过删除对以下的调用将链接用作 home 的总数tail

for i in $(find "$HOME" -maxdepth 1 -type d); do 
    du -hs "$i"
done

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

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

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

于 2015-02-27T23:29:15.310 回答