如何查找同名子文件夹的磁盘大小

时间:2013-10-23 02:10:47

标签: shell ubuntu terminal command

假设Ubuntu上的目录结构是/home/f1/a/home/f2/a/home/f3/a/home/f4/a。假设我的目标是知道每个af1f2f3中文件夹f4的磁盘大小(不是这些文件夹中文件的大小)但文件夹本身);并且当我在/home时这样做。

问题我可以从/home运行什么shell命令来获取每个文件夹a的磁盘大小?

在我的真实世界示例中,我有60个这样的目录(即~/f1/a~/f2/a,...,~/f60/a)所以这个命令不会过多地泄露其他信息是优选的。

2 个答案:

答案 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

希望这有帮助。