linux - 使用 find 命令计算从特定日期到截止日期的所有文件的总大小

标签 linux bash find

我有一个包含多个子文件夹的文件夹。需要使用 find 命令计算从特定日期到截止日期的所有文件的总大小。我尝试使用以下命令。不工作。

find . -type -f -newerat 2020-01-05 ! -newerat 2020-02-10 

问候

最佳答案

你写的命令几乎就是我们需要的一切。

我们首先列出要计算大小的所有文件。

$ find . -type f -newerat 2020-02-01 ! -newerat 2020-02-11

./c/1
./a/1
./a/3
./a/2
./b/1
./b/2

这为我们提供了我们想要考虑的所有文件的列表。我们现在需要做的是获取每个文件的大小。正如@XrXca在评论中所说,我们可以使用find的printf选项来获取每个文件的大小(以字节为单位)。

$ find . -type f -newerat 2020-02-01 ! -newerat 2020-02-11 -printf="%s\\n" 
4
4
4
4
4
4

这为我们提供了一个很好的文件大小列表。

现在我们只需要把它们总结一下。为此,我们可以使用一点 awk:

$ find . -type f -newerat 2020-02-01 ! -newerat 2020-02-11 -printf="%s\\n" | awk '{s+=$1} END {print s}'

24

这是已过滤文件的累积大小(以字节为单位)。

关于linux - 使用 find 命令计算从特定日期到截止日期的所有文件的总大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60147882/

相关文章:

jquery - 如何从 DIV 中删除特定标签?

c - 如何判断两个线程是否访问了同一 block 内存?

c - 编译器如何以及为什么将 extern 函数替换为空函数?

c - 重定向标准流

linux - 运行 ImageMagick 将低质量 pdf 转换为图像(用于 OCR)的最佳参数是什么

linux - 如何从文件中删除重复的 header (Linux 中第一次出现除外)

linux - 在 bash 脚本中使用修改后的变量,尝试以编程方式更改 git 分支

Linux从目录中复制选定的文件并以目录名命名它们

linux - BASH getopt inside bash 函数

arrays - Ruby 在多维数组中搜索相同的值