如何找到某个日期范围内传入文件占用的空间,

如何找到某个日期范围内传入文件占用的空间,

我的要求是找到每月消耗的空间和传入文件的数量。所以说,如果我有一个目录“X”,我想知道空间和 11 月份

以下是我们用来获取详细信息的命令。

cd x
Output1=$(find . -type f -newermt 2017-11-01 ! -newermt 2017-11-30 | wc -l)
Output2=$(find . -type f -newermt 2017-11-01 ! -newermt 2017-11-30 | du -sk)
echo "Count of file is $Output1 and Space occupied by files is $Output2 KB"

我们针对 3 个不同的范围运行了上述命令:a) 10 月 1 日至 10 月 31 日,b) 10 月 1 日至 11 月 30 日,c) 11 月 1 日至 11 月 30 日。

我的期望是 a) + b) 应该 = C 但事实并非如此。您能否就此分享一下您的看法。或者如果我使用的命令有任何问题,您可以告诉我吗?或者如果您有更好的选择来满足我的要求,请分享。

文件计数为 3679280,文件占用空间为 19766351768 文件计数为 6857725,文件占用空间为 19765912668 文件计数为 3063226,文件占用空间为 19765541452

答案1

-newermt 2017-10-31表示“10 月 31 日 00:00 之后修改”,
! -newermt 2017-10-31表示“10 月 31 日 00:00 之前或当天修改”,因此后者不包括 10 月 31 日当天制作的文件。如果您使用-newermt 2017-10-01 ! -newermt 2017-10-31,您将错过该月的最后一天。

$ find . -type f -newermt 2017-10-01 ! -newermt 2017-10-31
./oct30
$ find . -type f -newermt 2017-10-01 ! -newermt 2017-11-30
./oct30
./oct31
./nov01
$ find . -type f -newermt 2017-11-01 ! -newermt 2017-11-30
./nov01

您可能想要-newermt 2017-10-01 ! -newermt 2017-11-01获取整个 10 月的数据,但请注意,在 10 月 31 日到 11 月 1 日之间的午夜创建的文件也算作 10 月的数据。 (对于任何具有亚秒时间戳的系统,这可能不会成为问题。)

相关内容