Linux에서 디스크 공간이 가득 찬 문제가 있습니다. 명령어를 이용하여 확인해 보니 df
'/' 디렉터리가 100% 점유되어 있는 것을 발견했습니다. 그래서 어떤 폴더가 공간을 많이 차지하고 있는지 확인하기 위해 cd /
및 를 실행했는데 du -sh
명령을 실행하는 데 시간이 오래 걸렸습니다. 그러나 궁극적으로 "/" 폴더의 어떤 최상위 직접 하위 폴더가 많은 디스크 공간을 소비하고 있는지 자세히 알고 싶습니다. 그럼 누구든지 같은 명령을 내릴 수 있나요?
답변1
du -h --max-depth=1 / | sort -h -r
/
그러면 자신을 포함한 모든 폴더가 표시됩니다 /
.
모든 파일을 검색하는 데 시간이 오래 걸릴 수 있습니다. 폴더 내 하위 폴더의 특정 크기가 필요한 경우 해당 폴더의 정확한 경로를 지정하거나 /
이미 해당 폴더에 있는 경우 건너뛰십시오./
-h
인간 친화적인 형식으로 치수를 표시하는 옵션--max-depth=1
내부 깊은 곳에 1개의 디렉터리만 입력하도록 명령에 지시합니다./
sort -h -r
인간에게 친숙한 크기를 사용하여 결과를 정렬하고-r
결과를 역순으로(가장 큰 디렉터리에서 가장 작은 디렉터리로) 표시하도록 명령에 지시합니다.
답변2
이 명령은 가장 큰 항목 15개를 순서대로 나열합니다.
du -xhS | sort -h | tail -n15
우리는 이 -x
플래그를 사용하여 별도의 파일 시스템에 있는 디렉터리를 건너뜁니다.
위의 내용은 사람이 읽을 수 있는 형식으로 출력을 -h
제공 하고 순서대로 정렬할 수 있습니다.du
sort -h
-S
명령의 표현에는 du
하위 디렉터리의 크기가 포함되지 않습니다.
수량을 변경하여 tail
더 적게 또는 더 많이 볼 수 있습니다. 매우 편리한 명령.
답변3
사용된 디스크 공간을 표시하는 두 가지 다른 오픈 소스 명령줄 도구는 다음과 같습니다.
NCDU: 대부분의 Linux 배포판 저장소에 있습니다.
가장 높은 디스크 사용량(tdu): Golang으로 작성된 종속성이 없는 정적 바이너리입니다.
답변4
이 명령은 du -hs /*
모든 최상위 디렉터리를 개별적으로 나열합니다.