Linux find始终返回1条记录


0

为什么find -cmin +20Linux CentOS中的命令总是返回1条记录.?我该如何解决这个问题?


当我尝试find /path/to/search -cmin +20 -ls (-ls打印/列出找到的文件名)时,它似乎对我很好。它是许多安装的默认设置但明确使用它是一个好主意。与/path/to/search默认设置相同.
Hennes 2013年

是的,但请尝试这样:find -cmin +20 | wc -l即使您当前的目录为空,它也将始终返回1。
克里斯蒂安

mkdir testcd testfind -cmin +20 | wc -l。我的输出是0
Hennes 2013年

这两个文件的时间戳是ls -la .什么?
Hennes 2013年

嗯...的确,当我做同样的事情时,我的结果也是0如此。很奇怪,因为在我现有的目录中它总是返回1.我不得不提及目录,并再次创建它,现在它工作得很好。编辑:描述的目录一直是空的
Krystian 2013年

Answers:


0

当你没有输入find要查看的特定路径时,至少GNU find将默认从递归搜索并包括当前目录,即.。逐字逐句man find

If no paths are given, the current directory is used.

如果您不想在结果中包含path参数本身,请添加-mindepth 1。再次来自man find

-mindepth levels
   Do not apply any tests or actions at levels less than `levels` (a
   non-negative integer). `-mindepth 1` means process all files except
   the command line arguments.

例:

~$ mkdir test
~$ cd test
~/test$ find
.
~/test$ find -mindepth 0
.
~/test$ find -mindepth 1
~/test$ 

使用您的特定命令,如果当前目录本身超过20分钟,find将始终返回至少一条记录。像你一样创建一个新目录将不会返回任何内容,因为它与搜索条件不匹配 - 至少在创建后不会持续20分钟。


埃。这就是为什么我问“两个文件ls -la的时间戳是什么。” (其中一个是dir本身)。;-)
Hennes 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.