티스토리 뷰
리눅스에서 디렉토리의 사이즈를 검사할 때 주로 사용되는 명령어는 du 입니다. 명령어를 활용하면 되지만 어느 디렉토리가 용량을 많이 차지하는지 찾기 위해서는 각 폴더 별로 아래와 같은 형태의 명령어를 실행해봐야 합니다.
$ du -sh /bin
디렉토리가 많은 경우 이것 또한 노가다(?)가 될 수 있기 때문에 간단하지만 유용한 스크립트를 작성했네요. 현재 디렉토리 하위에 있는 디렉토리를 기본 depth 1부터 인자로 입력 받는 maxdepth까지 du -sh 를 자동으로 해줍니다.
#!/bin/sh
DEPTH=1
if [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "help" ] || [ "$1" = "h" ] ;then
cat <<EOF
======================================================
.du usage : .du {check directory maxdepth} (default 1)
======================================================
e.g.
1) .du
2) .du 3
EOF
exit 255
fi
if [ -n "$1" ];then
DEPTH=$1
fi
DIRLIST=$(find ./ -maxdepth $DEPTH -type d 2>/dev/null)
if [ -z "$DIRLIST" ]; then
echo "Input: $DEPTH: use number!"
exit 255
fi
for DIR in $DIRLIST;do
du -sh $DIR
done
실행 결과는 아래와 같습니다.
간단하지만 노가다를 싫어하는 개발자 특성이 잘 반영된 것 같습니다.;
'개발 > Shell Script' 카테고리의 다른 글
[sh] 복수 개의 파일 이름 변경 (8) | 2016.06.14 |
---|---|
[sh] 터미널 명령어 결과를 배열로 사용 (0) | 2016.02.02 |
[sh] expect prompt와 shell script 안에서의 expect 차이 (4) | 2016.01.20 |
[sh] 문자열 포함 여부 검사 (0) | 2015.12.15 |
[sh] "$*" 과 "$@"의 차이 (2) | 2015.11.30 |
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
- Total
- Today
- Yesterday