0

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

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

在我的真实世界示例中,我有 60 个这样的目录(即~/f1/a, ~/f2/a..., ~/f60/a),因此首选不会发送过多其他信息的命令。

4

2 回答 2

1

此代码有效:

for i in `seq 1 60`
do
    du -ch ~/f$i/a | tail -n 1 | awk -F' ' {'print $1'}
done
于 2013-10-23T02:21:14.863 回答
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

希望这可以帮助。

于 2013-10-23T02:54:08.303 回答