hashize: 동적 링크 버전 (가볍고 빠름, 일반 Linux 환경)
hashize_static: 정적 링크 버전 (독립 실행, 의존성 오류 발생시, 이식성 높음)
소개
hashize는 디렉토리 트리 구조를 시각화하고 각 파일 및 디렉토리의 크기를 읽기 쉬운 형식으로 표시하는 명령줄 도구입니다. tree 툴과 비슷하지만 용량에 따른 Limit , 정렬 기능을 쉽게 사용 가능합니다.
(개발: IT Infra hash, github : domuji6@gmail.com)
- 트리 형태의 직관적인 디렉토리 구조 표시
- 파일 크기를 사람이 읽기 쉬운 형식(KiB, MiB, GiB)으로 자동 변환
- 크기, 이름, 수정 시간별 정렬 지원
- 파일/디렉토리 필터링 및 표시 개수 제한
- 색상 지원으로 가독성 향상
대부분의 경우 hashize (동적 링크 버전)를 사용하는 것을 권장합니다. 실행 시 라이브러리 오류가 발생하거나 특수한 환경에서만 hashize_static을 사용하세요.
출력 형식
색상 의미
- 파란색 / : 디렉토리
- 초록색 : 파일
- 회색 : 숨겨진 항목 개수 표시
출력 예시
실제 터미널에서 보이는 모습:
/var/www ├── html/ [523MiB] │ ├── nextcloud/ [450MiB] │ ├── guide/ [8.5MiB] │ ├── index.html [21KiB] │ └── more file(+15) └── logs/ [102MiB]
- 트리 구조:
├──,└──,│를 사용하여 계층 구조 표현 - 크기 표시: [용량] 형식으로 표시 (B, KiB, MiB, GiB 단위)
- 숨김 항목: 제한 옵션 사용 시
more directory(+N)또는more file(+N)으로 표시 - 시간순 정렬 시: [용량] 날짜시간 형식으로 수정 시간 추가 표시
설치 및 실행
방법 1: 컴파일된 바이너리 사용 (권장)
# 1. 다운로드
wget https://sap.mdvplab.com:1443/cab/hashize
# 2. 실행 권한 부여
chmod +x hashize
# 3. 실행
./hashize /var/www
# 4. 시스템 전역 설치 (선택사항)
sudo mv hashize /usr/local/bin/
hashize /var/www # 이제 어디서든 실행 가능
방법 2: Bash 스크립트 사용
스크립트 위치: /mnt/data5/script/df/hashize.sh
/mnt/data5/script/df/hashize.sh <디렉토리>
PATH 등록 (선택사항)
자주 사용하는 경우 alias를 설정하면 편리합니다:
# ~/.bashrc에 추가
alias hashize='/usr/local/bin/hashize'
# 또는 스크립트 버전 사용 시
alias hashize='/mnt/data5/script/df/hashize.sh'
기본 사용법
명령어 형식
hashize [옵션] <디렉토리> [최대Depth]
기본 사용 예제
# /var/www 디렉토리를 기본 Depth(2)로 분석
hashize /var/www
# /var/log 디렉토리를 Depth 3까지 분석
hashize /var/log 3
옵션 설명
| 옵션 | 설명 |
|---|---|
-h, --help |
도움말 표시 |
-v, --version |
버전 정보 표시 |
-s |
크기순 정렬 (기본값, 큰 것부터) |
-n |
이름순 정렬 (알파벳순) |
-t |
수정 시간순 정렬 (최신순, 날짜 표시) |
-f |
파일만 표시 |
-d |
디렉토리만 표시 |
-D NUM |
표시할 디렉토리 개수 제한 (0=전체) |
-L NUM |
표시할 파일 개수 제한 (0=전체) |
-c, --no-color |
색상 출력 비활성화 |
활용 예제
1. 기본 사용 - 디렉토리 크기 분석
hashize /var/www 2
depth를 지정하지 않으면 기본 Depth(2)로 /var/www의 구조와 크기를 표시합니다.
2. 이름순 정렬로 표시
hashize -n /var/www 3
파일과 디렉토리를 이름순으로 정렬하여 Depth 3까지 표시합니다.
3. 최신 파일 확인 (수정 시간순)
hashize -t /var/log
최근에 수정된 파일을 찾을 때 유용하며, 수정 날짜가 함께 표시됩니다.
4. 파일만 표시
hashize -f /var/www
디렉토리는 제외하고 파일만 크기와 함께 표시합니다.
5. 상위 5개 디렉토리만 표시
hashize -D 5 /tmp
각 Depth별로 크기가 큰 상위 5개 디렉토리만 표시합니다.
6. 상위 5개 디렉토리와 10개 파일 표시
hashize -D 5 -L 10 /tmp
디렉토리와 파일의 표시 개수를 각각 제한합니다.
7. 색상 없이 출력 (파이프 사용 시)
hashize -c /tmp | head -20
색상 코드 없이 출력하여 다른 명령어로 파이프하거나 파일로 저장할 때 사용합니다.
8. 디렉토리만 크기순으로 표시
hashize -d -s /var
가장 큰 디렉토리를 찾을 때 유용합니다.
유용한 팁
대용량 디렉토리 분석 중 언제든지 Ctrl+C를 눌러 작업을 안전하게 중단할 수 있습니다.
1. 디스크 공간 부족 시 큰 파일 찾기
# 파일만 크기순으로 표시하고 상위 20개 확인
hashize -f /home | head -20
2. 특정 디렉토리의 용량 순위
# 디렉토리만 표시하여 어느 폴더가 큰지 확인
hashize -d /var 4
3. 최근 변경된 파일 추적
# 시간순 정렬로 최근 작업 내역 확인
hashize -t /var/www/html 3
4. 로그 파일로 저장
# 색상 없이 출력하여 파일로 저장
hashize -c /var/www > disk_usage_report.txt
5. 상위 N개 항목만 빠르게 확인
# 각 레벨에서 상위 3개씩만 표시하여 빠른 개요 파악
hashize -D 3 -L 3 /home
시스템 요구사항
hashize (동적 링크 버전)
- Linux 운영체제 (64-bit)
- glibc 2.x 이상
- GNU coreutils
hashize_static (정적 링크 버전)
- Linux 운영체제 (64-bit)
- 추가 의존성 없음 (독립 실행)
Bash 스크립트 버전
- Linux 운영체제
- Bash 셸
- GNU coreutils (du, stat, numfmt)
자주 묻는 질문
Q: 어떤 버전을 다운로드해야 하나요?
A: 대부분의 경우 hashize (동적 링크 버전)를 사용하세요. 실행 시 오류가 발생하면 hashize_static을 사용하세요.
Q: 실행이 너무 오래 걸려요.
A: 대용량 디렉토리의 경우 분석에 시간이 걸릴 수 있습니다. -D와 -L 옵션으로 표시 개수를 제한하거나, 최대 Depth를 줄이면 더 빠르게 확인할 수 있습니다. 또는 Ctrl+C로 중단 후 더 작은 범위로 다시 실행하세요.
Q: 색상이 깨져 보여요.
A: -c 또는 --no-color 옵션을 사용하여 색상을 비활성화하세요. 파이프로 다른 명령어와 함께 사용할 때도 이 옵션을 권장합니다.
Q: "Permission denied" 에러가 발생해요.
A: 접근 권한이 없는 디렉토리를 분석하려고 할 때 발생합니다. sudo를 사용하거나 권한이 있는 디렉토리를 지정하세요.
Q: 숨겨진 파일도 보고 싶어요.
A: hashize는 기본적으로 모든 파일(숨김 파일 포함)을 스캔합니다. -D나 -L 옵션으로 제한한 경우 more file(+N)으로 숨겨진 개수가 표시됩니다. 제한을 늘리거나 0으로 설정하면 모두 볼 수 있습니다.
Q: Bash 스크립트 버전과 바이너리 버전의 차이는?
A: 바이너리 버전(컴파일된 실행 파일)이 스크립트보다 빠르고 의존성이 적습니다. 성능과 편의성을 위해 바이너리 버전 사용을 권장합니다.