이 두 find 명령이 다른 결과를 제공하는 이유는 무엇입니까?

이 두 find 명령이 다른 결과를 제공하는 이유는 무엇입니까?

지난 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 {} \;

파일만 나열됩니다.

관련 정보