답변:
가장 큰 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}
입니다.
이름에 공백이있는 파일을 처리하고 출력에서 사람이 읽을 수있는 파일 크기를 생성합니다. 가장 큰 파일이 마지막에 나열되었습니다. 꼬리에 대한 논거는 당신이 보는 결과의 수입니다 (여기서는 10이 가장 큼).
파일 이름에서 공백을 처리하는 데 사용되는 두 가지 기술이 있습니다. find -print0 | xargs -0
사용하는 대신에 공간 분리를 NULL, 두 번째는 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
find . -type f -print0 | xargs -0 du | sort -nr | head -10 | cut -f2 | xargs -I{} du -sh {}
(즉, sort -nr | head -10
대신 사용 sort -n | tail -10
)
나는 항상 사용 ncdu
합니다. 대화식이며 매우 빠릅니다.
ncdu
---의 경우 +1000은 htop
디스크 공간 과 같습니다 . 매우 유용합니다!
[t] [g] [g]
입니다.
빨리 보려면 :
du | sort -n
가장 큰 디렉토리를 모두 나열합니다.
du --max-depth=1 * | sort -n
또는 다시 중복을 피하십시오 * :
du --max-depth=1 | sort -n
현재 디렉토리의 모든 디렉토리를 가장 큰 디렉토리로 나열합니다.
(-n 정렬 할 매개 변수가 필요하므로 첫 번째 필드는 텍스트가 아닌 숫자로 정렬되지만 정렬에 중요한 숫자가 필요하므로 -h 매개 변수를 du로 사용할 수 없습니다)
예를 들어, 심볼릭 링크를 따르거나 (기본값은 심볼릭 링크를 따르지 않음) 하위 디렉토리를 제외한 디렉토리 내용의 크기 만 표시하려는 경우 du에 대한 다른 매개 변수를 사용할 수 있습니다. du는 디렉토리의 파일이 마지막으로 변경된 날짜와 시간을 목록에 포함 할 수도 있습니다.
find {/path/to/directory} -type f -size +{file-size-in-kb}k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'
du -h --max-depth=1 2>/dev/null | sort -nr | grep -v ^0
-약간
대부분의 경우 CLI 도구를 선호하지만 드라이브 사용의 경우 filelight가 정말 좋습니다 . 프리젠 테이션은 내가 본 다른 공간 관리 도구보다 더 직관적입니다.
GUI 도구 인 KDirStat 는 데이터를 테이블 형식과 그래픽으로 표시합니다. 대부분의 공간이 사용되는 곳을 실제로 빠르게 볼 수 있습니다.
이것이 정확히 당신이 원하지 않는 KDE 도구인지 확실하지 않지만, 여전히 이런 질문에 언급되어야한다고 생각합니다. 그것은 좋고 많은 사람들이 아마 그것을 모른다-나는 최근에 나 자신에 대해 배웠다.
ncdu
대신 사용하십시오 .
조합은 항상 유닉스에서 최고의 트릭입니다.
du -sk $(find . -type d) | sort -n -k 1
디렉토리 크기를 KB로 표시하고 마지막에 가장 크게 표시하도록 정렬합니다.
그러나 Tree-view는 더 많은 것을 필요로 할 것입니다 ... 정말로 필요합니까?
이 스캔은 여러 디렉토리에 중첩되므로 상위 디렉토리에 대한 하위 디렉토리를 다시 계산하고 기본 디렉토리 .
는 마지막에 총 활용도 합계로 표시됩니다.
그러나 찾기에서 깊이 제어를 사용하여 특정 깊이에서 검색 할 수 있습니다.
그리고 원하는 내용에 따라 실제로 스캔에 더 많이 관여 할 수 있습니다. 깊이 제어 find
와 -maxdepth
및 -mindepth
특정 하위 디렉토리 깊이를 제한 할 수 있습니다.
너무 긴 문제에 대한 개선 된 변형은 다음과 같습니다.
find . -type d -exec du -sk {} \; | sort -n -k 1
그런 식으로 중첩 된 출력을 제공하지는 않지만 시도해보십시오. 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
다음은 자동으로 수행하는 스크립트입니다.
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% ***
이 스크립트는 매우 편리하고 유용합니다!
각 파일 / 디렉토리의 디스크 사용률을 찾는 것이 유익하지만 대부분의 경우 디스크 내부에서 가장 큰 파일 / 디렉토리를 아는 것으로 충분합니다.
그래서 내가 가장 좋아하는 것은 다음과 같습니다.
# 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
또 다른 대안은 마지막 액세스 시간으로 디스크 공간을 분할 하여 공간 낭비 파일을 쉽게 찾을 수있는 agedu 입니다.
심지어 임시 웹 페이지를 제공하여 X Windows가없는 서버에서도 작동하므로 그래프를 통해 사용량을 원격으로 분석 할 수 있습니다. 서버의 IP 주소가 192.168.1.101이라고 가정하면 서버의 명령 행에이를 입력 할 수 있습니다
agedu -s / -w --address 192.168.1.101:60870 --auth basic -R
"GUI"에 액세스하여 결과를 찾아 볼 수있는 사용자 이름, 비밀번호 및 URL을 인쇄합니다. 완료되면 종료 agedu
와 함께 Ctrl+D
서버.
목록을 조금 더 완성하기 위해 내가 좋아하는 디스크 사용량 분석기를 추가 xdiskusage
합니다.
GUI는 다른 좋은 ol 'X 유틸리티를 기억합니다. 빠르고 빠르지는 않지만 그럼에도 불구하고 계층 구조에서 쉽게 탐색하고 몇 가지 표시 옵션을 가질 수 있습니다.
$ xdiskusage /usr
다음의 한 줄짜리 파일을 사용해보십시오 (현재 디렉토리에서 가장 큰 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'