디스크 공간을 가장 많이 사용하는 파일 찾기


43

내 하드 드라이브에서 가장 큰 파일을 나열 할 수 있습니까? df -H디스크 사용량을 표시 하는 데 자주 사용 하지만 전체 백분율, 남은 GB 수만 제공합니다.

많은 수의 작은 파일과 매우 적은 수의 매우 큰 파일을 사용하여 많은 데이터 집약적 인 계산을 수행합니다. 사용 된 대부분의 디스크 공간은 매우 적은 수의 파일에 있기 때문에 이러한 큰 파일의 위치를 ​​추적하기가 어려울 수 있습니다. 1kB 파일을 삭제하면 공간이 많이 확보되지 않지만 100GB 파일을 삭제하면됩니다. 크기에 따라 하드 드라이브의 파일을 정렬하는 방법이 있습니까?

감사.


'tdu'에 대해서는 다음을 참조하십시오 : unix.stackexchange.com/questions/425615/…
Joseph Paul

답변:


47

사용 가능한 표준 도구 :

현재 디렉토리에서 가장 큰 10 개의 파일을 나열하려면 다음을 수행하십시오. du . | sort -nr | head -n10

현재 디렉토리에서 가장 큰 디렉토리를 나열하려면 다음을 수행하십시오. du -s * | sort -nr | head -n10

업데이트 요즘 저는 제이 차크라 (Jay Chakra)가 다른 답변에서 설명 | head -n10하고 화면을 스크롤하지 않고 더 읽기 쉬운 형식을 사용합니다 . 마지막 줄에는 가장 큰 파일 또는 디렉토리 (트리)가 있습니다.

때때로, 예를 들어. 현재 디렉토리에 -x여러 개의 마운트 포인트를 사용 하거나 여러 개 를 사용하는 대신 사용 --exclude=PATTERN하지 않는 마운트 포인트 ( 종종 /mnt ) 에 파일 시스템을 마운트 하고 작업하는 것이 더 편리합니다.

대용량 (NFS) 볼륨으로 작업 할 때 du많은 (서브) 디렉토리를 실행할 때 스토리지 백엔드 (파일러)에 상당한로드가 발생할 수 있습니다 . 이 경우 quota볼륨 설정을 고려하는 것이 좋습니다 .


3
첫 번째 옵션으로, 당신은 그들을 함께 나열 할 수 ls -Sl | head있습니까?
Bernhard

아니요, du전체 디렉토리 트리를 통과하지만 ls -S는 현재 디렉토리 만 검사합니다.
jippie

35

jippie의 답변에 추가

사람이 읽을 수있는 형식으로 현재 디렉토리에서 가장 큰 디렉토리를 나열하려면 다음을 수행하십시오.

du -sh * | sort -hr | head -n10

견본:

[~]$ du -sh * | sort -hr | head -n10
48M app
11M lib
6.7M    Vendor
1.1M    composer.phar
488K    phpcs.phar
488K    phpcbf.phar
72K doc
16K nbproject
8.0K    composer.lock
4.0K    README.md

읽기가 더 편리합니다. :)


14

ncdu디스크 사용에 대한 개요를 제공 할 수 있으므로을 사용해보십시오 . 웹 사이트에서 :

ncurses 인터페이스가있는 디스크 사용량 분석기는 전체 간격 설정이 없지만 간단한 SSH 연결과 관련된 원격 서버에서 실행되도록되어 있습니다. ncdu는 빠르고 간단하고 사용하기 쉬우 며 ncurses가 설치된 최소 POSIX와 같은 환경에서 실행할 수 있어야합니다.


3

(암소 비슷한 일종의 영양)

du -max /dir | sort -n큰 파일뿐만 아니라 큰 파일도 표시하며 정리가 필요한 위치를 식별하는 데 사용할 수 있습니다.

du -max | sort -n | tail -1000
...
46632   ./i386/update/SuSE-SLES/8/rpm/i586/kernel-source-2.4.21-138.i586.rpm
49816   ./UnitedLinux/apt/i386/RPMS.updates/k_debug-2.4.21-138.i586.rpm
679220  ./UnitedLinux/apt/i386/RPMS.updates
679248  ./UnitedLinux/apt/i386
679252  ./UnitedLinux/apt
691820  ./UnitedLinux/i586
691836  ./i386/update/SuSE-SLES/8/rpm/i586
695192  ./i386/update/SuSE-SLES/8/rpm
695788  ./i386/update/SuSE-SLES/8
695792  ./i386/update/SuSE-SLES
695804  ./i386/update
695808  ./i386
1390184 ./UnitedLinux

(나는 그것이 아주 오래된 나무라는 것을 알고있다 : p)


2

우분투에서 모든 파일과 디렉토리의 크기를 찾는 간단하고 효과적인 방법이 있습니다 :

애플리케이션> 액세서리> 디스크 사용량 분석기

이 창에서 툴바의 "파일 시스템 스캔"버튼을 클릭하십시오. 짧은 시간 (초) 후에는 모든 디렉토리 및 파일의 디스크 사용량이 있습니다.



0

이 명령으로 시도하면 20Mb보다 큰 모든 파일이 나열됩니다.

find / -type f -size +20000k -exec ls -lh {} \; 2> /dev/null \
  | awk '{ print $NF ": " $5 }'  | sort -hrk 2,2

3
파일 시스템에서 가장 큰 파일이 20MB 인 경우 디스크 공간이 부족하지 않을 수 있습니다. 최소한 어떤 HD로도이 밀레니엄을 만들었습니다
Kevin

그것은 단지 예일뿐입니다. 20MB 파일뿐만 아니라 20MB보다 큰 모든 것을 찾을 수 있습니다.
patseb

ls -lh그럼 sort?? ls -s또는 stat -c %b아마도 더 나을 것입니다.
Mikel

나는 얻지 못한다. 내 예제는 ls를 사용하고 정렬합니다. 그는 디렉토리가 아닌 전체 디스크에서 파일을 찾고 싶었습니다.
patseb

0

다음 명령을 입력하십시오

cd /

그런 다음 입력

du -sh * | 그렙 G

위의 명령은 어떤 디렉토리에서 사용 된 메모리 양을 보여줍니다. 그런 다음 삭제할 디렉토리 또는 파일을 결정해야합니다.


-2

이 명령으로 시도하면 큰 파일이 나열됩니다.

ls -lrS | tail -1

전체 HDD가 아닌 현재 디렉토리를 표시합니다.
slm

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.