서버관리 2014. 10. 7. 16:08

유닉스 리눅스 du 명령어 에서 sort 로 정렬하기

유닉스 리눅스에서 du 명령어는 폴더나 파일의 사용량을 보여 주는 명령어 이다. 

Summarize disk usage of each FILE, recursively for directories.


1.

기본적으로 모든 파일 폴더는 물론 서브폴더 까지 다 보여 주기 때문에 너무 많이 리스트 된다. 

그래서 --max-depth=N 이라는 옵션을 이용하여 보여주는 폴더 단계를 조절해서 사용한다. 


# du --max-depth=1 

이라고 하면 1단계 폴더만 리스트 된다. 


이 옵션을 별로로 옵션을 주지 않고 영구적으로 설정하여 계속 동작하게 하려면, 

/etc/profile.d/ 폴더에 파일 하나를 추가해 서 위 옵션을 적어 넣어 주면 된다. 

물론, bashrc 파일 등을 직접 수정할 수도 있지만, 확장성을 위해서 /etc/profile.d/ 를 이용하는 게 좋다.


/etc/profile.d/zzz.sh 파일의 내용은 아래 형식으로 넣어 준다. 

alias du='du -h --max-depth=1'


위 옵션들은 각각

-h : human-readable 보기 쉬운 형태로 보여 준다. eg, 1K 2345M 2G

--max-depth=1 : 디렉토리를 1단계만 보여 준다. 


 2.

du 의 결과물을 정렬을 해 보자. 


du 명령어 자체에는 정렬 옵션이 없어 보인다. 

그래서, sort 명령어를 추가해서 정렬을 할 수 있다. 


# du | sort -nr


이런식으로 du 의 결과물을 정렬할 수 있다. 

du 한 후에 sort 하기 때문에, du 의 결과물이 많을 경우 sort 에도 시간이 많이 걸릴 수 있다. 


sort 의 옵션들은 각각

-n : numeric-sort 문자열의 수치 값에 따라 비교한다. 

-r : reverse  역순으로 정렬