LINUX:如何递归计算到根目录的每个子目录的大小?

use*_*104 3 size directory

在此处输入图片说明我已经在 Linux 中编写了这个脚本 Scrit。

我现在需要知道每个子目录的大小,条件是-atime +${DAYS} 从 directory 向下搜索$DIR。结果应收集在一个文本文件中$FILENAME

#!/bin/bash
#Days ago to search
DAYS="1"
#Path to directory to be searched
DIR="/media/nss/MBVOL2/TEST1/"
#Result filename Solomon
FILENAME="/media/nss/MBVOL2/TEST1/solomon2.txt"
# Process of listing these files in a result text file 
find "${DIR}" -type f -atime +${DAYS} -print > $FILENAME
Run Code Online (Sandbox Code Playgroud)

小智 5

如果您想要子目录的大小,请使用du. 这将递归打印子目录的大小(-h用于人类可读的大小):

du -h /media/nss/MBVOL2/TEST1/
Run Code Online (Sandbox Code Playgroud)

如果您只想要摘要而不是每个结果,请使用-s

du -sh /media/nss/MBVOL2/TEST1/
Run Code Online (Sandbox Code Playgroud)

如果您想要有关atime脚本条件的目录大小,可以使用以下命令:

find -type d -atime +1 -exec du -sh {} \;
Run Code Online (Sandbox Code Playgroud)

这将在之后exec(和之前\;)执行命令并传递该find命令找到的所有文件。但是,请记住,您实际上是在访问这些文件和目录,因此atime将针对它们进行修改。