我想知道上个月创建了多少PDF.我正在使用以下命令,但它正在返回0
find . -name '*.pdf' -mtime +46 ! -mtime +30 | wc -l
Run Code Online (Sandbox Code Playgroud)
我在正确的目录中,似乎逻辑是正确的...任何想法为什么这不起作用?是否有一种更简单的方法,比如通过我正在寻找的特定月份,而不是试图计算这样的日子?
kev*_*kev 23
您正在查找所有pdf文件:
46 几天前不是30几天前
x>46 && x<=30 --> false
Run Code Online (Sandbox Code Playgroud)它将返回空结果.
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)
如果你使用的是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文档.
您似乎正在查找超过46天但未超过30天(但更年轻)的文件.
那这个呢?
find . -name '*.pdf' -mtime -46 -mtime +30
Run Code Online (Sandbox Code Playgroud)