모든 사용자와 여러 드라이브에서 소비되는 총 공간을 나열하는 방법

모든 사용자와 여러 드라이브에서 소비되는 총 공간을 나열하는 방법

여러 드라이브에 걸쳐 특정 파일 확장자에 대해서만 모든 사용자와 이들이 사용하는 총 공간을 나열하려면 어떻게 해야 합니까? 기본적으로 다음과 유사하게 출력됩니다.

User1 15T /datadrive01
User2 10T /datadrive01
User3 11gb /datadrive01

User1 20T /datadrive02
User2 10gb /datadrive02
User3 5gb /datadrive02

답변1

시간이 좀 걸립니다.

for mnt in /datadrive01 /datadrive02; do
    find "$mnt" -printf '%u %k\n' 2>/dev/null \
      | awk -v "mnt=$mnt" '{sum[$1]+=$2} END {for (u in sum) print u,sum[u],mnt}' \
      | numfmt --from-unit=1000 --to=iec --field=2
    echo
done
  • find모든 파일 및 인쇄 -printf '%u %k\n'사용자 및 디스크 사용량 크기( )
  • awk각 사용자의 모든 크기를 합산하여 인쇄합니다.
  • 선택적으로 numfmt치수를 사람이 읽을 수 있는 형식으로 변환
  • echo중간에 있는 빈 줄만

관련 정보