これら2つのfindコマンドが異なる結果を提供するのはなぜですか?

これら2つのfindコマンドが異なる結果を提供するのはなぜですか?

過去10日間に変更されたすべてのファイルとそのファイルの所有者を確認したいので、次のように入力していくつかの結果が返されることを確認しました。

find . -maxdepth 1 -mtime -10

それから私は命令を出しました。

find . -maxdepth 1 -mtime -10 -exec ls -lh {} \;

これら2つのコマンドは非常に異なる結果をもたらしますが、その理由を理解できません。誰かが何が起こっているのか、そしてなぜ他の結果が出てくるのかを説明できますか?

ベストアンサー1

option を使用しないため、-type fすべてのfindフォルダとファイルが返されます。 2 番目のコマンドでは、フォルダが見つかるとコマンドはその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 {} \;

ファイルのみがリストされます。

おすすめ記事