티스토리 뷰

리눅스에서 디렉토리의 사이즈를 검사할 때 주로 사용되는 명령어는 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

실행 결과는 아래와 같습니다.



간단하지만 노가다를 싫어하는 개발자 특성이 잘 반영된 것 같습니다.;

댓글
댓글쓰기 폼