我的要求是找到每月消耗的空间和传入文件的数量。所以说,如果我有一个目录“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 月的数据。 (对于任何具有亚秒时间戳的系统,这可能不会成为问题。)