假设Ubuntu上的目录结构是/home/f1/a
,/home/f2/a
,/home/f3/a
和/home/f4/a
。假设我的目标是知道每个a
,f1
,f2
,f3
中文件夹f4
的磁盘大小(不是这些文件夹中文件的大小)但文件夹本身);并且当我在/home
时这样做。
问题我可以从/home
运行什么shell命令来获取每个文件夹a
的磁盘大小?
在我的真实世界示例中,我有60个这样的目录(即~/f1/a
,~/f2/a
,...,~/f60/a
)所以这个命令不会过多地泄露其他信息是优选的。
答案 0 :(得分:1)
此代码有效:
for i in `seq 1 60`
do
du -ch ~/f$i/a | tail -n 1 | awk -F' ' {'print $1'}
done
答案 1 :(得分:0)
以下内容将为您提供文件夹大小的细分,以及所有文件夹的最后总数,无论有多少文件夹,只要它们以f开头且位于/ home
du -ch /home/f*/a/
输出:
24K /home/mgreen/f11/a/
4.0K /home/mgreen/f12/a/
4.0K /home/mgreen/f61/a/
32K total
我认为你正在寻找更像下面这样的东西,虽然它可以让你为每个/ a /文件夹而不是所有这些文件夹的总数。
for i in $(ls /home/mgreen |grep 'f[0-9]');do for d in $(ls /home/mgreen/$i|grep "a");do printf "$i$d " ;du -sch /home/mgreen/$i/$d | tail -n 1 | awk '{print $1}';done ;done
其中$ i等于顶级目录f1-100,$ d等于'a'目录。额外的循环将$ a分配给变量进行打印。
输出:
f11/a/ 24K
f12/a/ 4.0K
f61/a/ 4.0K
希望这有帮助。