获取上个月修改的文件数量

Web*_*net 7 linux bash shell

我想知道上个月创建了多少PDF.我正在使用以下命令,但它正在返回0

find . -name '*.pdf' -mtime +46 ! -mtime +30 | wc -l
Run Code Online (Sandbox Code Playgroud)

我在正确的目录中,似乎逻辑是正确的...任何想法为什么这不起作用?是否有一种更简单的方法,比如通过我正在寻找的特定月份,而不是试图计算这样的日子?

kev*_*kev 23

您正在查找所有pdf文件:

它将返回空结果.


   Numeric arguments can be specified as
   +n     for greater than n,
   -n     for less than n,
   n      for exactly n.
Run Code Online (Sandbox Code Playgroud)

如果要查找所有pdf文件(30<x<46):

$ find . -name '*.pdf' -mtime +30 -mtime -46
Run Code Online (Sandbox Code Playgroud)


Ada*_*iss 9

如果你使用的是GNU,find你可以像这样指定绝对日期:

find . -name '*.pdf' -newermt 2012-01-31 ! -newermt 2012-02-29 | wc -l
Run Code Online (Sandbox Code Playgroud)

-newermt选项将查找最近修改过的文件而不是绝对时间.

如果您不使用GNU,您可以使用touch相应的时间戳创建两个文件,并找到如下所示的PDF:

touch -t 201201312359 oldest # 11:59 PM 1/31/2012
touch -t 201203010000 newest # midnight 3/1/2012
find . -name '*.pdf' -newer oldest ! -newer newest | wc -l
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅GNU文档.


gho*_*oti 6

您似乎正在查找超过46天但未超过30天(但更年轻)的文件.

那这个呢?

 find . -name '*.pdf' -mtime -46 -mtime +30
Run Code Online (Sandbox Code Playgroud)