준호씨의 블로그

현재 위치 기준으로 디렉터리들의 모든 하위디렉터리의 파일 개수 확인 하기. inode full을 해결하자 본문

IT이야기

현재 위치 기준으로 디렉터리들의 모든 하위디렉터리의 파일 개수 확인 하기. inode full을 해결하자

준호씨 2020. 9. 22. 23:54
반응형

파일 개수가 많아서 inode full 발생 시 파일을 정리해 줘야 되는 경우가 있습니다. 그런데 어느 디렉터리에 파일이 많은지 찾기가 어려울 때가 있습니다. 어느 디렉터리에 파일이 많은지 찾아보는 방법을 정리해 봅니다.

아래 커맨드는 현재 디렉터리를 기준으로 보이는 모든 디렉터리의 하위 디렉터리 포함한 파일 개수를 표시해 주는 명령어입니다.

$ find . -maxdepth 1 -mindepth 1 -type d -exec ls -ld "{}" \; -exec sh -c "find {} -type f | wc -l" \;

결과는 아래와 같이 나옵니다.

이 명령어를 어떻게 만들었는지 정리해 봅니다.

 

일단 현재 디렉터리 기준으로 directory들을 확인합니다.

$ find . -maxdepth 1 -mindepth 1 -type d

명령어를 사용하면 현재 디렉터리에서 보이는 디렉터리만 보여 줍니다. -maxdepth 1로 하위 디렉터리들을 제외하고요. -mindepth 1로 현재 디렉터리인 "."을 제외합니다.

그리고 그 디렉터리들을 기준으로 하위 디렉터리의 파일들의 개수를 세면 됩니다.

현재 디렉터리 기준에서 하위 디렉터리의 파일들을 모두 헤아려 보는 방법입니다.

$ find . -type f | wc -l
  236498

이제 이 두 명령어를 혼합해서 만들어서 실행하면 됩니다.

$ find . -maxdepth 1 -mindepth 1 -type d -exec ls -ld "{}" \; -exec sh -c "find {} -type f | wc -l" \;
drwxr-xr-x  21 junho85  staff  672 May  4 15:50 ./porsche
    5685
drwxr-xr-x  14 junho85  staff  448 Jun 22 17:34 ./spring5fs
      88
drwxr-xr-x  14 junho85  staff  448 Jul  6 23:16 ./spring-core-study-19
     178
drwxr-xr-x  14 junho85  staff  448 Jul  7 00:18 ./spring-core-study-21
     158
...

이제 파일이 많은 디렉터리를 찾아가서 파일들을 정리하면 되겠습니다. 지우거나 옮기거나 압축하거나 여러 방법이 있겠죠?

 

커맨드를 좀 더 개선할 방법이 있지 않을까 생각이 드는데요. 예를 들어 파일 개수를 왼쪽에 출력해 주고 오른쪽에 디렉터리만 출력해 주면 좀 더 심플할 것 같고 파일 개수 순으로 정렬을 할 수 있기 때문에 더 좋은 명령어가 될 수 있을 거 같습니다.

반응형
Comments