
디렉토리에 있는 모든 폴더의 크기, 폴더/파일, 소유자를 보는 방법을 아는 사람이 있습니까?
내가 아는 유일한 명령은 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/*