Linux에서 항상 그렇듯이 작업을 수행하는 방법은 여러 가지가 있습니다. 그러나 CLI에서 수행 해야하는 경우 이것이 선호되는 방법입니다.
나는 이것을 루트 또는 sudo로 실행하여 시작합니다.
du -cha --max-depth=1 / | grep -E "M|G"
grep은 리턴 라인을 메가 바이트 또는 기가 바이트 범위의 값으로 리턴하는 라인으로 제한합니다. 디스크가 충분히 큰 경우 |T
테라 바이트 크기를 포함하도록 추가 할 수도 있습니다 . 당신은 몇 가지 오류가 발생할 수 있습니다 /proc
, /sys
및 / 또는 /dev
그들이 디스크에 실제 파일이 아닌 때문이다. 그러나 루트의 나머지 디렉토리에 대해서는 여전히 유효한 출력을 제공해야합니다. 가장 큰 것을 찾은 후에는 해당 디렉토리 내에서 명령을 실행하여 범인을 좁힐 수 있습니다. 예를 들어, /var
가장 큰 경우 다음과 같이 할 수 있습니다.
du -cha --max-depth=1 /var | grep -E "M|G"
아이들에게 문제가 생길 수 있습니다!
추가 고려 사항
위의 명령은 확실히 트릭을 수행하지만 아래 주석에 포함 할 수있는 몇 가지 사항을 지적하는 건설적인 비판이있었습니다.
grep
디렉토리 또는 파일 이름에 대문자 G 또는 M이있는 경우 제공 한 I로 인해 가끔 "K"값이 반환 될 수 있습니다. K 값 디렉토리가 표시되지 않도록하려면 보다 창의적이고 복잡한 정규식 게임. 예 :grep -E "^[0-9\.]*[MG]"
어떤 드라이브가 문제인지 알고 그 위에 다른 마운트 된 드라이브가 있고 검색에 시간을 낭비하지 않으려는 경우 명령에 -x
플래그를 추가 할 수 있습니다 du
. 해당 플래그에 대한 매뉴얼 페이지 설명 :
-x, --one-file-system
skip directories on different file systems
du
가장 높은 값이 맨 아래에 오도록 명령 의 출력을 정렬 할 수 있습니다 . 명령 끝에 이것을 추가하십시오.| sort -h