Linux에서 폴더 크기 가져 오기


1

/ home / 아래에 많은 홈 폴더가 있으며 읽기 쉬운 목록으로 각 사용자 폴더의 전체 크기를 가져오고 싶습니다.

  1. / home / user1 100MB
  2. / home / user2 24MB
  3. / home / user3 54MB

기타

현재 비슷한 것을 사용하고 있습니다 du -hc | grep total


1
'du -hc'는 어떻게 답변을 제공하지 않습니까?
ericslaw

답변:


1

Ernie와 Depesz의 답변을 병합 한 IMO는 'du -s / home / * / | 정렬 -n '. 'du -h'는 더 이상 숫자가 아니기 때문에 'sort -n'으로 올바르게 정렬되지 않습니다. 예를 들어 10M 이전의 10G 정렬

다른 대안으로, 홈 디렉토리에 있는지 여부에 관계없이 각 사용자가 사용하는 총 디스크 공간을 찾으려면 할당량 유틸리티 설치 여부는 관련 파일 시스템에서 할당량 계정을 사용하도록 설정하고 각 사용자는 그대로 두십시오. 할당량은 0 (무제한)입니다. 사용 된 디스크 공간과 사용 된 파일 / 아이 노드 수를 알려줍니다.

그런 다음 'repquota -a'를 실행하여 다음과 같은 보고서를 얻을 수 있습니다.

*** 장치 / dev / sda8의 사용자 할당량보고
유예 시간 차단 : 7 일; 아이 노드 유예 시간 : 7 일
                        차단 한계 파일 한계
사용자는 부드러운 하드 유예를 사용했습니다. 부드러운 하드 유예를 사용했습니다.
사용자 1-67844 07748 0
사용자 2-21908 0 1742 0 0
사용자 3-27212 00025800
사용자 4-25492 33033
사용자 5-575536 0 2972 ​​0 0
사용자 6-83944 0 1114 0 0
사용자 7-501304 0 3418 0
사용자 8-760068 50 50100
사용자 9-1445396 0 1932 00
...

repquota에는 du의 "-h"와 같이 "사람이 읽을 수있는"출력을위한 "-s"옵션도 있습니다. 놀랍게도 du-h와 동일한 정렬 문제가 있습니다.


6
du -hcs /home/*/ 

또는 정확히 원하는 것을 위해 :

for i in /home/*/; do 
    user=${i#/*/}
    space=$(du -hs "$i" | cut -f1)
    echo "${user%/} = $space" 
done

글쎄, 당신이 가서 나에 대한 질문을 변경하면 '정확히 원하는 것'이 아닙니다 :-)
Kyle Brandt

폴더의 소유자가 항상 사용자 인 경우 user = 행을 user = $ (stat -c "% U" "$ i")로 바꾸고 echo "$ user = $ space"--That 좀 더 깨끗할 수 있습니다. 줄 번호를 원하면 '| '완료'뒤에 cat -n '을 입력하거나 루프에서 매번 변수를 증가시킵니다.
Kyle Brandt

죄송합니다. 형식을 읽기 쉽게 만들려고 노력했습니다. 도와 주셔서 감사합니다. 내일 사용해 보겠습니다.

0

무엇을 찾으려고합니까?

크기별로 정렬하려면 다음을 시도하십시오.

du -s /home/ |sort -n

0

그냥 이것을 실행하십시오 :

du -sh /home/*

그리고 당신은 행복해야합니다.

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