
나는 내용이 익숙하지 않은 상당히 큰 디렉토리 트리를 가지고 있으며 거기에 매우 큰 디렉토리가 묻혀 있다고 믿을만한 이유가 있습니다. 그들이 어디에 있는지 어떻게 알 수 있나요?
문맥:나는 수년에 걸쳐 많은 파일을 남겨둔 웹 애플리케이션을 정리하고 있습니다. 수십만 개의 작은 오래된 "session.*" 파일이 포함된 디렉토리를 찾아서 지웠지만 find
계층 구조 위로 명령이 여전히 매우 느립니다.
트리가 충분히 커서 이것이 ls -RC | less
매력적인 솔루션이 아닙니다. 디스크 공간을 많이 차지하는 디렉토리를 찾으려면 를 사용합니다 du -s *
. 가장 많은 파일이 포함된 디렉토리를 찾으려면 어떻게 해야 합니까?
편집하다:du --inodes
이것은 오래된 서버에 있으므로 파일 수를 계산 하는 데 사용할 수 없습니다 . 대부분의 독자에게는 이것이 아마도 최선의 해결책일 것입니다.
답변1
du --inodes *
만두:
--inodes list inode usage information instead of block usage
답변2
du --inodes
이 없는 오래된 배포판에서는
find . -type d -ls | sort -n -k7,7
모든 디렉터리는 크기가 커지는 순서대로 나열되므로 목록 끝에 가장 많은 파일이 있는 디렉터리(또는 특정 순간에 가장 많은 파일이 포함된 디렉터리)가 표시됩니다. 명령 find
을 실행하는 데 시간이 걸릴 수 있지만 이에 대해 할 수 있는 일은 없습니다. 분할 정복 du
접근 방식을 사용하더라도 디스크에서 동일한 양의 정보를 읽어야 합니다.
답변3
당신은 그것을 사용할 수 있습니다
du --inodes * |sort -nr
du --inodes *
디렉토리별로 파일 수를 제공 sort -nr
하고 이 번호를 내림차순으로 정렬합니다.