我想查看過去 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 {} \;
僅列出文件。