it-swarm-ko.com

가장 큰 파일 / 디렉토리를 찾는 Linux 유틸리티

나는 어느 파일/디렉토리가 가장 많은 공간을 차지하고 있는지를 보여주는 프로그램을 찾고있다.

74% music
 \- 60% music1
 \- 14% music2
12% code
13% other

나는 그것이 KDE3에서 가능하다는 것을 안다. 그러나 나는 그렇게하지 않을 것이다. - KDE4 또는 커맨드 라인이 선호된다.

133
Robert Munteanu

가장 큰 10 개의 파일을 찾으려면 (linux/bash) :

find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

가장 큰 10 개의 디렉토리를 찾으려면 다음을 수행하십시오.

find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

차이점은 -type {d:f}뿐입니다.

이름에 공백이있는 파일을 처리하고 사람이 읽을 수있는 파일 크기를 출력합니다. 가장 큰 파일이 마지막에 나열됩니다. tail에 대한 인수는 사용자가 보는 결과의 수입니다 (여기서는 최대 10 개).

파일 이름에서 공백을 처리하는 데 사용되는 두 가지 기술이 있습니다. find -print0 | xargs -0는 공백 대신 공백 구분 기호를 사용하고 두 번째 xargs -I{}는 공백 대신 줄 바꿈을 사용하여 입력 항목을 종료합니다.

예:

$ find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

  76M    ./snapshots/projects/weekly.1/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.2/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.3/onthisday/onthisday.tar.gz
  76M    ./tmp/projects/onthisday/onthisday.tar.gz
  114M   ./Dropbox/snapshots/weekly.tgz
  114M   ./Dropbox/snapshots/daily.tgz
  114M   ./Dropbox/snapshots/monthly.tgz
  117M   ./Calibre Library/Robert Martin/cc.mobi
  159M   ./.local/share/Trash/files/funky chicken.mpg
  346M   ./Downloads/The Walking Dead S02E02 ... (dutch subs nl).avi
130
Sean

나는 항상 ncdu을 사용한다. 대화식이며 매우 빠릅니다.

200
Daenyth

빠른보기 :

du | sort -n

마지막으로 가장 큰 디렉토리를 나열합니다.

du --max-depth=1 * | sort -n

또는 중복 된 *을 피하십시오.

du --max-depth=1 | sort -n

현재 디렉토리에서 가장 큰 디렉토리를 가진 모든 디렉토리를 나열합니다.

(첫 번째 필드가 텍스트가 아닌 숫자로 정렬되도록 정렬하려면 -n 매개 변수가 필요하지만이 경우 정렬에 중요한 숫자가 필요하므로 du에 -h 매개 변수를 사용할 수 없습니다)

Du에 대한 다른 매개 변수는 심볼릭 링크 (기본값은 심볼 링크를 따르지 않음)를 따르거나 하위 디렉토리를 제외한 디렉토리 내용의 크기를 표시하려는 경우에 사용할 수 있습니다. du는 디렉토리에있는 파일이 마지막으로 변경된 날짜와 시간을 목록에 포함시킬 수도 있습니다.

37
mas

대부분의 경우, 나는 CLI 도구를 선호하지만, 드라이브 사용을 위해, 나는 정말로 파일 라이트 를 좋아한다. 프레젠테이션은 필자가 보아온 다른 공간 관리 도구보다 나에게 더 직관적입니다.

Filelight screenshot

23
Anton Geraschenko

Filelight는 KDE 사용자에게 더 좋지만 완전한 (질문 제목은 일반적 임) 언급해야합니다 Baobab 은 Ubuntu, 일명 Disk Usage Analyzer에 포함되어 있습니다 :

enter image description here

20
Nicolas Raoul

GUI 도구 KDirStat은 테이블 형식과 그래픽 형식으로 데이터를 보여줍니다. 공간의 대부분이 사용되는 곳에서 정말 빠르게 볼 수 있습니다.

enter image description here

이게 정확히 당신이 원하지 않는 KDE 도구 일지 모르겠지만, 아직도 이런 질문에서 언급되어야한다고 생각합니다. 그것은 좋은 일이며 많은 사람들은 아마 그것을 모릅니다. 나는 최근에 나 자신에 대해서만 배웠습니다.

8
Jonik

조합은 항상 유닉스에서 최고의 트릭입니다.

du -sk $(find . -type d) | sort -n -k 1

디렉토리 크기를 KB 단위로 표시하고 끝에 가장 큰 것을 정렬합니다.
그러나 트리 뷰는 더 많은 fu를 필요로합니다 ... 정말 필요합니까?

이 검사는 여러 디렉토리에 중첩되어 상위 디렉토리에 대해 하위 디렉토리를 다시 계산하므로 끝에 .라는 기본 디렉토리가 총 사용량 합계로 표시됩니다.

그러나 깊이에 대한 검색을 사용하여 특정 깊이에서 검색 할 수 있습니다.
그리고 실제로 스캔 작업에 더 많이 관여하십시오. 원하는 작업에 따라 다릅니다. -maxdepth-mindepth를 사용하는 find의 깊이 제어는 특정 하위 디렉토리 깊이로 제한 될 수 있습니다.


Arg-too-long 문제에 대한 세련된 변형이 있습니다.

find . -type d -exec du -sk {} \; |  sort -n -k 1
5
nik

나는 gt5 를 좋아한다. 트리를 탐색하고 서브 디렉토리를 열어 세부 사항을 자세히 볼 수 있습니다. 결과를 표시하기 위해 lynx와 같은 텍스트 모드 웹 브라우저를 사용합니다. 최상의 결과를 얻으려면 설치 elinks 하십시오.

alt text

3
Dennis Williamson

이와 같이 중첩 된 출력을 제공하지는 않지만 du을 시도해보십시오.

du -h /path/to/dir/

내 문서 폴더에서 실행하면 다음과 같은 결과가 나타납니다.

josh-hunts-macbook:Documents joshhunt$ du -h
  0B    ./Adobe Scripts
  0B    ./Colloquy Transcripts
 23M    ./Electronic Arts/The Sims 3/Custom Music
  0B    ./Electronic Arts/The Sims 3/InstalledWorlds
364K    ./Electronic Arts/The Sims 3/Library
 77M    ./Electronic Arts/The Sims 3/Recorded Videos
101M    ./Electronic Arts/The Sims 3/Saves
 40M    ./Electronic Arts/The Sims 3/Screenshots
1.6M    ./Electronic Arts/The Sims 3/Thumbnails
387M    ./Electronic Arts/The Sims 3
387M    ./Electronic Arts
984K    ./English Advanced/Documents
1.8M    ./English Advanced
  0B    ./English Extension/Documents
212K    ./English Extension
100K    ./English Tutoring
5.6M    ./IPT/Multimedia Assessment Task
720K    ./IPT/Transaction Processing Systems
8.6M    ./IPT
1.5M    ./Job
432K    ./Legal Studies/Crime
8.0K    ./Legal Studies/Documents
144K    ./Legal Studies/Family/PDFs
692K    ./Legal Studies/Family
1.1M    ./Legal Studies
380K    ./Maths/Assessment Task 1
388K    ./Maths
[...]

그런 다음 출력을 sort에 파이프하여 정렬 할 수 있습니다.

du /path/to/dir | sort -n
2
Josh Hunt

각 파일/디렉토리의 디스크 사용 백분율을 찾는 것이 효과적이지만 디스크의 가장 큰 파일/디렉토리를 아는 대부분의 시간이면 충분합니다.

그래서 제가 가장 좋아하는 것은 :

# du -a | sort -n -r | head -n 20

출력은 다음과 같습니다.

28626644        .
28052128        ./www
28044812        ./www/vhosts
28017860        ./www/vhosts/example.com
23317776        ./www/vhosts/example.com/httpdocs
23295012        ./www/vhosts/example.com/httpdocs/myfolder
23271868        ./www/vhosts/example.com/httpdocs/myfolder/temp
11619576        ./www/vhosts/example.com/httpdocs/myfolder/temp/main
11590700        ./www/vhosts/example.com/httpdocs/myfolder/temp/main/user
11564748        ./www/vhosts/example.com/httpdocs/myfolder/temp/others
4699852         ./www/vhosts/example.com/stats
4479728         ./www/vhosts/example.com/stats/logs
4437900         ./www/vhosts/example.com/stats/logs/access_log.processed
401848          ./lib
323432          ./lib/mysql
246828          ./lib/mysql/mydatabase
215680          ./www/vhosts/example.com/stats/webstat
182364          ./www/vhosts/example.com/httpdocs/tmp/aaa.sql
181304          ./www/vhosts/example.com/httpdocs/tmp/bbb.sql
181144          ./www/vhosts/example.com/httpdocs/tmp/ccc.sql
1
trante

다음은 자동으로 수행하는 스크립트입니다.

http://www.thegeekscope.com/linux-script-to-find-largest-files/

다음은 스크립트의 샘플 출력입니다.

**# sh get_largest_files.sh / 5**

[SIZE (BYTES)]     [% OF DISK] [OWNER]         [LAST MODIFIED ON]        [FILE] 

56421808           0%           root           2012-08-02 14:58:51       /usr/lib/locale/locale-archive
32464076           0%           root           2008-09-18 18:06:28       /usr/lib/libgcj.so.7rh.0.0
29147136           0%           root           2012-08-02 15:17:40       /var/lib/rpm/Packages
20278904           0%           root           2008-12-09 13:57:01       /usr/lib/xulrunner-1.9/libxul.so
16001944           0%           root           2012-08-02 15:02:36       /etc/selinux/targeted/modules/active/base.linked

Total disk size: 23792652288 Bytes
Total size occupied by these files: 154313868 Bytes  [ 0% of Total Disc Space  ]

*** Note: 0% represents less than 1% ***

이 스크립트는 매우 편리하고 유용 할 것입니다!

1
Kam

또 다른 대안은 마지막 액세스 시간으로 디스크 공간을 분할하는 agedu 로 공간 낭비 파일을 쉽게 찾을 수 있습니다.

X Window가없는 서버에서도 임시 웹 페이지를 제공하므로 그래프를 사용하여 원격으로 분석 할 수 있습니다. 서버의 IP 주소가 192.168.1.101이라고 가정하면 서버의 명령 줄에이 주소를 입력 할 수 있습니다

agedu -s / -w --address 192.168.1.101:60870 --auth basic -R

이렇게하면 "GUI"에 액세스 할 수있는 사용자 이름, 암호 및 URL이 인쇄되고 결과를 찾아 볼 수 있습니다. 완료되면 서버에서 Ctrl+Dagedu을 종료하십시오.

1
Bastiaan

현재 디렉토리와 그 서브 디렉토리에서 상위 25 개의 파일을 찾으려면 다음을 수행하십시오.

find . -type f -exec ls -al {} \; | sort -nr -k5 | head -n 25

"sort -nr -k5"파이프 명령을 통해 파일 크기에 따라 정렬하여 상위 25 개의 파일을 출력합니다.

1
xpros
du -chs /*

루트 디렉토리 목록을 보여줍니다.

0
RusAlex

다음 한 줄짜리 라이너 (현재 디렉토리에서 가장 큰 파일 20 개를 표시)를 시도해보십시오.

ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20

또는 인간이 읽을 수있는 크기로 :

ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20

두 번째 명령은 OSX/BSD에서 제대로 작동합니다 (sort에는 -h가 없습니다). sort에서 coreutils을 (를) 설치해야합니다.

따라서 이러한 별칭은 rc 파일 (필요할 때마다)에 유용합니다.

alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
0
kenorb

목록을 조금 더 완성하기 위해 필자는 xdiskusage 인 디스크 사용 분석기를 추가합니다.

GUI는 다른 좋은 유틸리티를 기억하고 있습니다. 속도는 빠르지 만 비대하지는 않지만 그럼에도 불구하고 계층 구조에서 쉽게 탐색 할 수 있고 몇 가지 디스플레이 옵션을 가질 수 있습니다 :

$ xdiskusage /usr

enter image description here

0
mpy