du 명령어 고급 사용법
이 마지막 단계에서는 du 명령을 사용하여 디렉토리를 크기별로 정렬하고, 특정 파일을 제외하며, 큰 파일에 집중하는 몇 가지 고급 기술을 배우게 됩니다.
디렉토리를 크기별로 정렬
가장 일반적인 작업 중 하나는 가장 큰 디렉토리 또는 파일을 찾는 것입니다. du와 sort를 결합하여 이를 수행할 수 있습니다.
du -h ~/project/data | sort -h
sort의 -h 옵션은 사람이 읽을 수 있는 크기를 올바르게 이해하고 정렬하도록 합니다. 출력은 가장 작은 것부터 가장 큰 것 순으로 정렬됩니다.
가장 큰 것부터 가장 작은 것 순으로 정렬하려면 sort에 -r (reverse, 역순) 옵션을 추가합니다.
du -h ~/project/data | sort -hr
예시 출력:
3.9M /home/labex/project/data
2.0M /home/labex/project/data/backups
804K /home/labex/project/data/images
8.0K /home/labex/project/data/docs
4.0K /home/labex/project/data/docs/doc2.txt
4.0K /home/labex/project/data/docs/doc1.txt
특정 파일 유형 찾기
find 명령을 du와 함께 사용하여 특정 파일 유형의 크기를 계산할 수 있습니다.
## Find all jpg files and check their sizes
find ~/project/data -name "*.jpg" -exec du -h {} \;
이 명령은 ~/project/data 디렉토리에서 .jpg 확장자를 가진 모든 파일을 찾고 각 파일에 대해 du -h를 실행합니다.
디렉토리 제외
때로는 디스크 사용량 계산에서 특정 디렉토리를 제외하고 싶을 수 있습니다. --exclude 옵션을 사용할 수 있습니다.
du -h --exclude="backups" ~/project/data
이렇게 하면 backups 디렉토리를 제외한 ~/project/data의 모든 항목에 대한 디스크 사용량이 계산됩니다.
총 디스크 사용량 얻기
디렉토리와 모든 하위 디렉토리의 총 합계 (요약) 만 얻으려면 다음을 사용합니다.
du -sh ~/project/data
예시 출력:
3.9M /home/labex/project/data
이것은 세부 정보보다는 디렉토리 트리의 총 크기에만 관심이 있을 때 특히 유용합니다.
파일 생성 시기에 따른 디스크 사용량 확인
이를 시연하기 위해 서로 다른 타임스탬프가 있는 몇 개의 파일을 만들어 보겠습니다.
## Create a directory for this example
mkdir -p ~/project/data/timeline
cd ~/project/data/timeline
## Create files with different timestamps
echo "Old file" > old_file.txt
echo "Recent file" > recent_file.txt
touch -d "1 month ago" old_file.txt
이제 find와 du를 사용하여 특정 기간 내에 수정된 파일을 확인할 수 있습니다.
## Find files modified in the last 7 days and check their sizes
find ~/project/data -type f -mtime -7 -exec du -h {} \;
이렇게 하면 지난 7 일 이내에 수정된 모든 파일의 크기가 표시됩니다.
이러한 고급 기술은 공간이 사용되는 위치를 식별하고 저장 공간을 확보할 기회를 찾아 Linux 시스템에서 디스크 공간을 효과적으로 관리하는 데 도움이 됩니다.