du --exclude 디렉터리- 이것이 가능합니까?

du --exclude 디렉터리- 이것이 가능합니까?

디렉터리를 제외하고 파일 트리의 디스크 사용량을 계산하는 방법

나는 다음과 같은 것을 원합니다 :

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.

관련 정보