최상위 디렉토리별로 파일 크기를 요약하는 방법

최상위 디렉토리별로 파일 크기를 요약하는 방법

예를 들어 다음과 같은 디렉터리 구조가 있습니다.

.
├── a
│   ├── d
│   │   ├── file1
│   │   └── file2
│   └── e
│       ├── file1
│       └── file2
└── b
    ├── d
    │   ├── file1
    │   └── file2
    └── e
        ├── file1
        └── file2

특정 날짜 이후 최상위 디렉터리에서 수정된 파일의 총 바이트 수를 계산하고 싶습니다. 그래서 나는 이렇게 했습니다:

find . -type f|sed -e "s/'//g" |xargs -L1 -IA stat -c "%Y,%s,%n" A|cut -d/ -f1,2

출력은 다음과 같습니다.

1479334332,20815368,./a
1479334362,58827575,./a
... ...
1479334383,41663496,./b
1479334413,58925879,./b
... ...

첫 번째 열은 파일 수정 타임스탬프이고, 두 번째 열은 파일 크기이며, 마지막 열은 최상위 디렉터리입니다. 이제 다음 SQL과 유사한 집계를 수행하고 싶습니다.

SELECT SUM(file_size) WHERE modified_timestamp>... GROUP BY directory

나는 프로그램 작성을 피하기 위해 bash에서만 이 작업을 수행하고 싶습니다.

답변1

나는 다음과 같은 작업을 수행할 수 있는 많은 도구를 찾았습니다.

처음 두 개를 테스트했는데 둘 다 잘 작동합니다. 언급할 가치가 있는 유일한 점은 CSV에 대한 지원입니다.아니요머리글. q이런 이유로 개인적으로 추천하지만 솔직히 대부분 똑같습니다.

관련 정보