find
디렉터리 크기에 따라 결과가 반환될 수 있나요 ?
아래 명령은 예상대로 잘 작동합니다.
find * -type f -size +10M -exec ls -hlSr {} \+
그러나 동일한 콘텐츠를 디렉터리에 적용하면 결과가 반환되지 않습니다.
find * -type d -size +10M -exec ls -hlSr {} \+ //no output
위의 일부 변경이 가능한지 궁금합니다.
du
원하는 출력을 얻기 위해 -->를 이와 같이 사용할 수 있다는 것을 알고 있지만 제한 사항과 사용 시나리오를 du -hs * | sort -h
이해하는 데 더 관심이 있습니다 .find
답변1
이것은 예상됩니다.
find -size
디렉토리 내용은 확인되지 않고 inode 크기만 확인됩니다(디렉터리 역시 "파일"일 뿐이라는 점을 기억하십시오). 디렉터리의 경우 10M보다 클 수 없으므로 결과 find
는 비어 있습니다.
inode 크기는 다음을 실행할 때 얻는 크기와 동일합니다 stat
.
$ du -s dir
61943836851 dir
$ stat -c %s dir
53248
그래서 단독으로는 사용이 불가능합니다 find
.
물론 필터링 옵션을 find . -type d -exec du -hs {} +
사용할 수도 있습니다.find
추가 자료: