it-swarm-ko.tech

명령 줄에서 디렉토리 (폴더)의 총 크기를 어떻게 결정합니까?

디렉토리 (폴더)에있는 모든 파일의 총 집계 크기 (디스크 사용량)를 표시하는 간단한 명령이 있습니까?

나는 이것을 시도했지만 그들은 내가 원하는 것을하지 않습니다.

  • ls -l-디렉토리에있는 개별 파일의 크기 만 표시하거나
  • df -h, 내 디스크의 여유 공간과 사용 된 공간 만 표시합니다.
774
David Barry

du "명령은 디렉토리에 대해 각 파일의 디스크 사용량을 재귀 적으로 요약합니다."

du -hs /path/to/directory
  • -h는 "사람이 읽을 수있는"숫자를 얻는 것입니다 (예 : 140M 대신 143260 가져 오기 (KB 크기)
  • -s는 요약 용입니다 (그렇지 않으면 폴더의 크기뿐만 아니라 모든 것을위한 것입니다 in 폴더가 별도로 있습니다)

-h를 사용하면서 다음을 사용하여 사람이 읽을 수있는 값을 정렬 할 수 있습니다

du -h | sort -h

sort-h 플래그는 "인간 판독 가능"크기 값을 고려합니다.


모든 파일과 디렉토리를 반복적으로 나열하지 않으려면 --max-depth 매개 변수를 제공하여 표시되는 항목 수를 제한 할 수 있습니다. 가장 일반적으로 --max-depth=1

du -h --max-depth=1 /path/to/directory
1243
Marcel Stimberg

최근에는 훌륭한 ncurses 기반 대화식 도구를 발견하여 디렉토리 크기에 대한 개요를 신속하게 제공합니다. 몇 년 동안 그런 종류의 도구를 검색했습니다.

  • 파일 계층 구조를 빠르게 드릴 다운
  • 예를 들어 삭제할 수 있습니다 도구 내부에서 거대한 임시 파일
  • 매우 빠른

명령 행에서 baobab 로 생각하십시오.

apt-get install ncdu
164
geekQ

이 크기는 재귀 적으로 크기를 찾고 맨 아래의 총 크기와 함께 각 폴더 이름 옆에 사람 형식으로 배치합니다.

du -hsc *
51
Brad

즐겨!

du foldername

해당 명령에 대한 자세한 정보 here

16
myusuf3

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.)
10
αғsнιη

아래는 총계, 폴더 및 파일 크기를 인쇄하는 데 사용하는 것입니다.

$ 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
9
vivekyad4v

그 대답은 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
4
pdp

읽을 수있는 형식의 디렉토리 크기 만 사용하려면 다음을 사용하십시오.

du -hs directoryname

이것은 아마도 올바른 섹션에 있지 않지만 명령 줄에서 다음을 시도 할 수 있습니다.

ls -sh filename

-s는 크기이며 -h은 사람이 읽을 수 있습니다.

-l를 사용하여 아래와 같이 ls 목록에 표시하십시오.

ls -shl
1
Shiv Singh

du /foldername는 폴더 크기를 아는 표준 명령입니다. 매뉴얼 페이지를 읽고 옵션을 찾는 것이 가장 좋습니다.

man du

명령을 사용하기 전에 매뉴얼 페이지 (사용 가능한 online )를 읽어야합니다.

0
Balaswamy vaddeman

다음은 POSIX 스크립트입니다.

  • 파일
  • 파일
  • 디렉토리
  • 디렉토리
#!/bin/sh
ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'

소스

0
Steven Penny

원하는 디렉토리에 많은 서브 디렉토리가있는 경우 다음을 사용하십시오.

$ cd ~/your/target/directory
$ du -csh 

-c, --total 총계
-s, --summarize는 각 인수에 대한 합계 만 표시합니다.
-h, 사람이 읽을 수있는 형식의 사람이 읽을 수있는 인쇄 크기 (예 : 1K 234M 2G)

그러면 현재 디렉토리의 모든 파일/폴더에서 전체 메모리 사용량을 생성합니다.

0
kmario23