디렉토리 (폴더)에있는 모든 파일의 총 집계 크기 (디스크 사용량)를 표시하는 간단한 명령이 있습니까?
나는 이것을 시도했지만 그들은 내가 원하는 것을하지 않습니다.
ls -l
디렉토리의 개별 파일 크기 만 표시합니다.df -h
내 디스크의 여유 공간과 사용 된 공간 만 표시합니다.
디렉토리 (폴더)에있는 모든 파일의 총 집계 크기 (디스크 사용량)를 표시하는 간단한 명령이 있습니까?
나는 이것을 시도했지만 그들은 내가 원하는 것을하지 않습니다.
ls -l
디렉토리의 개별 파일 크기 만 표시합니다. df -h
내 디스크의 여유 공간과 사용 된 공간 만 표시합니다.답변:
명령은 du
"각 FILE의 디스크 사용량을 요약하여 디렉토리에 대해 재귀 적으로 요약합니다."
du -hs /path/to/directory
-h
"사람이 읽을 수있는"숫자를 얻는 140M
것입니다. 예를 들어 대신 143260
(크기 : KB)-s
요약 용입니다 (그렇지 않으면 폴더의 크기뿐만 아니라 폴더의 모든 항목 에 대해 개별적으로 표시됨)사용 -h
하면서 사람이 읽을 수있는 값을 사용하여 정렬 할 수 있습니다
du -h | sort -h
-h
에 플래그는 sort
"사람이 읽을 수있는"크기 값을 고려할 것입니다.
모든 파일과 디렉토리를 반복적으로 나열하지 않으려면 --max-depth
표시되는 항목 수를 제한하는 매개 변수를 제공 할 수 있습니다 . 가장 흔하게,--max-depth=1
du -h --max-depth=1 /path/to/directory
du -sh
그것을 기억하는 방법으로 또는 DOOSH를 사용 한다 (참고 : 명령은 메모리 목적을위한 명령 줄 플래그의 구성과 동일하다)
du -hs *
가장 큰 디렉토리로 가서 어떤 파일이 너무 큰지 알았습니다 ... 이것은 좋은 방법이며, 가장 중요한 부분은 아무것도 설치할 필요가 없다는 것입니다! 확실히 내 공감이 마땅하다
du
약간의 반올림, 값이 선택한 단위에 둘 이상의 숫자가있는 경우 소수점을 표시하지 않음) 및 고전적인 1024 대 1000 접두사 문제. 값을 표시하는 단위를 변경 du
하는 옵션 -B
(또는 --block-size
)이 있거나 "원시"값을 바이트 단위로 가져 오는 -b
대신 사용할 수 있습니다 -h
.
최근에는 훌륭한 ncurses 기반 대화식 도구를 사용하여 디렉토리 크기에 대한 개요를 신속하게 제공합니다. 몇 년 동안 그런 종류의 도구를 검색했습니다.
커맨드 라인을위한 바오밥 으로 생각하십시오 :
apt-get install ncdu
ncdu
대단해! 설치 후이 작업을 수행하십시오 ncdu /
. 시스템에서 가장 큰 파일을 매우 빨리 찾을 수 있습니다. 또한 h
ncdu의 콘솔 인터페이스 내부에서을 누르십시오 . 그것은 매우 유용한 단축키를 가지고
tree
이 작업에 유용한 또 다른 명령입니다.
이를 통해 설치 sudo apt-get install tree
하고 다음을 입력하십시오.
tree --du -h /path/to/directory
...
...
33.7M used in 0 directories, 25 files
에서 남자 나무 :
-h Print the size of each file but in a more human readable way, e.g. appending a size letter for kilo‐
bytes (K), megabytes (M), gigabytes (G), terabytes (T), petabytes (P) and exabytes (E).
--du For each directory report its size as the accumulation of sizes of all its files and sub-directories
(and their files, and so on). The total amount of used space is also given in the final report (like
the 'du -c' command.)
아래는 총계, 폴더 및 파일 크기를 인쇄하는 데 사용하는 것입니다.
$ du -sch /home/vivek/* | sort -rh
------------------------------------------------------------
-c, --total
produce a grand total
-h, --human-readable
print sizes in human readable format (e.g., 1K 234M 2G)
-s, --summarize
display only a total for each argument
-------------------------------------------------------------
-h, --human-numeric-sort
compare human readable numbers (e.g., 2K 1G)
-r, --reverse
reverse the result of comparisons
70M total
69M /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/lib
992K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/results
292K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/target
52K /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/user-files
대답은 du
디렉토리의 전체 크기를 찾는 도구 라는 것이 명백해졌습니다 . 그러나 고려해야 할 몇 가지 요소가 있습니다.
경우에 따라 du
출력이 파일 시스템에 의해 할당 된 공간을보고하기 때문에 오해의 소지가있을 수 있습니다. 개별 파일의 크기의 합과 다를 수 있습니다. 일반적으로 파일 시스템은 한 문자 만 저장하더라도 파일에 4096 바이트를 할당합니다!
2의 거듭 제곱과 10 개의 거듭 제곱으로 인한 출력 차이. -h
스위치하는 du
사람이 읽을 수있는 출력을 제공하는 2 ^ 10 (1024), 2 ^ 20 (1048576) 등에 의해 바이트 수를 나눈다. 많은 사람들이 10의 거듭 제곱 (예 : 1K = 1000, 1M = 1000000)을보고 더 익숙해 져 결과에 놀랄 수 있습니다.
디렉토리에있는 모든 파일의 총 크기를 바이트 단위로 찾으려면 다음을 수행하십시오.
find <dir> -ls | awk '{sum += $7} END {print sum}'
예:
$ du -s -B 1
255729664
$ find . -ls | awk '{sum += $7} END {print sum}'
249008169
--bignum
나 -M
; 옵션이 아닌 경우 find . -ls | tr -s ' '|cut -d' ' -f 7| paste -sd+ |bc
# 2를 사용하십시오 .
--si
"-h와 같지만 1024가 아닌 1000의 거듭 제곱을 사용하십시오" 라는 옵션 이 있습니다.
du /foldername
폴더의 크기를 아는 표준 명령입니다. 매뉴얼 페이지를 읽고 옵션을 찾는 것이 가장 좋습니다.
man du
명령을 사용하기 전에 온라인에서 사용 가능한 매뉴얼 페이지를 읽어야합니다 .
내가 생각하는 가장 좋은 것은 다음과 같습니다.
du -h directory_name | tail -n1
이것은 당신이 관심있는 디렉토리의 크기만을 보여줄 것이며 그 디렉토리 안에있는 디렉토리와 파일의 크기는 인쇄하지 않을 것입니다.
폴더의 크기가 크면 du에 시간이 더 걸린다는 점을 추가해야합니다. 이 명령이 작동하려면 인내심이 있어야합니다. 다른 유닉스 명령과 마찬가지로이 명령 time
전에 사용하여이 프로세스의 총 시간을 확인할 수 있습니다 .
time du -h directory_name | tail -n1
du
이를위한 옵션이 있습니다 :-s