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