폴더 내 폴더의 크기 및 소유자 보기

폴더 내 폴더의 크기 및 소유자 보기

디렉토리에 있는 모든 폴더의 크기, 폴더/파일, 소유자를 보는 방법을 아는 사람이 있습니까?

내가 아는 유일한 명령은 du -hs * But 이 명령은 모든 하위 폴더도 표시하고 소유자는 표시하지 않습니다.

예를 들어 "/my/path/" 아래의 정보 크기, 폴더/파일, 폴더/파일 소유자를 가져오고 싶습니다.

이 정보를 제공할 수 있는 명령을 알고 계십니까?

허트먼 형제

답변1

find다음 명령을 시도해 볼 수 있습니다 .

find /my/path -maxdepth 1 -type d -printf "%u %g   " -exec du -h --max-depth=0 {} \;

-type d모든 디렉터리(필터 )는 시작 지점 /my/path(옵션 )보다 한 수준 아래에 위치 해야 합니다 -maxdepth 1. 그러면 그럴 것이다

  • -printf옵션을 사용하여 소유자 및 그룹을 인쇄한 다음
  • 이 메커니즘을 사용하면 du --max-depth=0발견된 각 디렉터리( )에서 호출이 수행되어 {}이전 옵션의 출력 바로 뒤에 이름과 전체 크기를 인쇄합니다.-printf-exec

답변2

여기에 간단한 스니펫이 있습니다.

#!/usr/bin/env bash

unset fname owner size i

for f in "$@"
  do
    fname[i]="$f"
    owner[i]=$(stat -c %U "$f")
    size[i++]=$(stat -c %s "$f")
  done 

for i in "${!fname[@]}"
  do
    printf "User %s owns %s and the size is %d Kbytes\n" "${owner[i]}" "${fname[i]}" $((${size[i]} / 1024))
  done

스크립트를 실행 가능하게 만들거나 다음과 같이 실행하십시오. bash script_name [path]

chmod u+x script_name

그리고 그것을 실행

./script_name /my/path/*

관련 정보