我想查看过去 10 天内修改的所有文件以及这些文件的所有者,因此我输入了以下内容以了解将返回多少结果;
find . -maxdepth 1 -mtime -10
然后我发出了命令;
find . -maxdepth 1 -mtime -10 -exec ls -lh {} \;
这两个命令给出了非常不同的结果,但我不明白为什么。有人可以解释发生了什么以及为什么会产生不同的结果吗?
答案1
因为您不使用 option -type f
,find
所以将返回所有文件夹和文件。在第二个命令中,如果找到文件夹,命令ls -lh
将列出其内容,从而导致比第一个命令更多的结果。
$ find . -maxdepth 1 -mtime -10 | wc -l
63
$ find . -maxdepth 1 -mtime -10 -exec ls -lh {} \; | wc -l
313
你应该使用:
find . -maxdepth 1 -type f -mtime -10
find . -maxdepth 1 -type f -mtime -10 -exec ls -lh {} \;
仅列出文件。