특정 사용자의 총 디스크 사용량


12

특정 파일 시스템에서 나 자신의 총 디스크 사용량을보고 싶습니다. 나는 명령을 실행

du -h ~my_user_name

그러나이 소유 한 모든 디렉토리가 나열됩니다 my_user_name. 이 모든 정보의 합계를 얻고 싶습니다. 전달할 적절한 옵션은 무엇입니까? 나는 시도했다

du -h -c ~my_user_name

그러나 그것은 효과가 없었습니다.

답변:



9

Du 는 사용자 당이 아닌 폴더 당 총계 만 표시합니다.

예를 들어, /home/example_user/example_user 의 전체 크기가 해당 폴더에 파일을 가지고있는 경우 작동 할 수 있습니다 . 다른 사용자가 파일을 가지고있는 경우, 소유 한 모든 파일의 크기가 아니라 해당 폴더에있는 모든 파일의 총 크기가됩니다.

사용자 당 정보를 얻으려면 다음 중 하나를 수행하십시오.

  1. 당신이있는 경우 할당량을 활성화 s의 '해당 명령을 사용합니다.
  2. find 를 사용 하여 파일을 계산하려는 모든 디렉토리를 탐색하십시오. uid사용 하여 파일 만 선택하고 연관 배열 을 awk로 유지 하여 총계를 계산하십시오.

find /path/to/search/ -user username_whos_files_to_count -type f -printf "%s\n" | awk '{t+=$1}END{print t}'

이것은 GNU find 특정 확장명을 사용합니다.

  • 첫 번째 명령은의 모든 파일과 디렉토리를 지나서 검색합니다 /path/to/search/.
  • -type f파일 만 선택하십시오. 그렇지 않으면 디렉토리의 크기도 계산됩니다. 빈 폴더를 만들어보십시오. 4k 디스크 공간을 사용했을 것입니다.
  • -user username_whos_files_to_count 한 사용자의 결과 만 선택
  • -printf "%s\n" 크기를 인쇄합니다.

첫 번째 부분 만 실행하면 숫자 목록이 표시됩니다. 그것들은 파일 크기입니다. (기타 모든 것은 제거되며 % s print 명령으로 크기 만 인쇄됩니다.)

그런 다음 모든 숫자를 추가하여 요약을 얻을 수 있습니다. 이 예에서는 awk로 수행됩니다.


+1 좋은 지적, 감사합니다! 아래의 대답은 실제로 내가 원하는 것입니다. 내 경우에는 사용자 / 폴더 구별이 그다지 중요하지 않습니다
Alex

좋은. du -sch자주 사용되는 쉬운 명령입니다. 일이 섞여있을 때 누가 무엇을 소유했는지 추적하는 것은 하나의 라이너로 할 수 있지만 훨씬 어렵습니다. 한 번 사용했지만 오늘 재구성하는 데 문제가있었습니다.
Hennes

나에게 많은, 완벽한 설명 도왔
바빈 Lonston

2

특정 사용자가 사용하는 모든 것을 찾으려면 좋은 명령은 다음과 같습니다.

find -user $USER -type f -exec du -chs {} +

폴더별로 사용을 요약하려는 경우와 같이 특정 요구에 따라 추가로 수정할 수 있으며 다음과 같은 효과가 있습니다.

find . -maxdepth 1 -user $USER -type d ! -path . -exec du -chs {} +

이것은 한 수준에서 디렉토리 만 찾고, 사용자별로 제한하며, 상위 디렉토리를 제외하고 각 디렉토리와 끝에 요약을 인쇄합니다.

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