디렉터리를 제외하고 파일 트리의 디스크 사용량을 계산하는 방법
나는 다음과 같은 것을 원합니다 :
du --exclude type d
rsync를 사용하여 홈 디렉터리의 일부를 미러/백업하고 있으며 백업 후 전체 크기를 다시 확인하고 싶었지만 어떤 이유로 한 디렉터리의 원본과 대상 크기가 다릅니다(예: 12288 B 및 16384 B). 분명히 대부분의 디렉토리에는 4096 B가 있습니다.
소스와 타겟 모두 ext4입니다.
답변1
사용하고 싶은 모든 항목의 목록을 제공하세요.--files0-from
find -type f -print0 | du --files0-from=-
답변2
GNU find가 있으면 파일 크기를 인쇄하도록 할 수 있습니다.
find /source ! -type d -printf '%P %s\n'
결정적인 출력을 얻으려면 출력을 정렬하십시오. 파일 이름에 개행 문자가 포함된 경우 서로 다른 순열에 대해 동일한 정렬된 출력을 얻을 수 있지만 이는 의도적으로 설계된 경우가 아니면 발생하지 않습니다.
comm -3 <(find /source ! -type d -printf '%P %s\n') <(find /destination ! -type d -printf '%P %s\n')
답변3
제안된 두 가지 답변은 Linux용입니다. POSIX를 고수하는 제안은 다음과 같습니다.
#!/bin/sh
find "$@" -type f |\
xargs du -s |\
awk 'BEGIN {total = 0;} { total += $1; } END { print total; }'
또는 경로 이름의 공백을 해결해 볼 수 있습니다(여전히 POSIX).
#!/bin/sh
find "$@" -type f -exec du -s {} + |\
awk 'BEGIN {total = 0;} { total += $1; } END { print total; }'
그런데 OP가 요청했습니다.전체 크기;어떤 이유로 다른 답변에서는 파일별로 크기를 분석하려고 합니다.
추가 자료:
답변4
나는 당신이 찾고 있는 것이 이라고 믿습니다 --max-depth
.
예를 들어. 모든 하위 디렉터리를 포함하지 않고 디렉터리의 디스크 사용량을 계산하려는 경우 이렇게 할 수 있습니다.
du [directory name] --max-depth=1
하위 디렉터리의 크기도 확인하려면 깊이를 늘리면 됩니다.
사용 방법에 대한 많은 정보를 제공하는 링크를 찾았습니다. du
그래도 도움이 되지 않으면 이 웹사이트를 확인해 보세요.뒤. 그것은 많은 정보를 제공합니다 du
.