du 결과를 시간별로 정렬하는 방법 * 및 * --max-length=1 제한

du 결과를 시간별로 정렬하는 방법 * 및 * --max-length=1 제한

저는 rsync를 사용하여 파일을 백업하고 --link-dest폴더의 마지막 백업과의 차이점만 동기화합니다.

어쨌든 날짜별로 정렬된 디렉토리 목록을 볼 수 있나요?그리고--max-depth=1또는 으로 제한하시겠습니까 -d 1?

예를 들어 다음은 디렉터리의 깊이를 보여줍니다.

$ du -h --max-depth=1
33G     ./05-12-2021-16:00
4.7G    ./05-12-2021-12:30
4.6G    ./05-12-2021-11:30
11G     ./06-12-2021-13:30
4.8G    ./06-12-2021-02:00
19M     ./06-12-2021-08:58
4.7G    ./05-12-2021-21:00
938M    ./05-12-2021-02:11
754M    ./05-12-2021-19:00
32M     ./06-12-2021-02:30
179M    ./05-12-2021-13:30
172M    ./05-12-2021-17:30
4.7G    ./05-12-2021-22:00
752M    ./05-12-2021-20:00
170M    ./05-12-2021-17:00
4.7G    ./06-12-2021-12:01
934M    ./05-12-2021-12:00
38M     ./05-12-2021-14:00
175M    ./06-12-2021-12:31
34M     ./05-12-2021-18:00
388M    ./05-12-2021-16:30
42M     ./06-12-2021-14:01
4.7G    ./05-12-2021-00:54
756M    ./06-12-2021-11:33
173M    ./06-12-2021-00:31
4.5G    ./06-12-2021-15:31
31M     ./06-12-2021-00:00
1007M   ./05-12-2021-23:01
762M    ./05-12-2021-22:30
31M     ./05-12-2021-21:30
765M    ./06-12-2021-15:01
214M    ./05-12-2021-10:44
32M     ./06-12-2021-01:30
33M     ./06-12-2021-13:00
27M     ./05-12-2021-15:00
166M    ./05-12-2021-11:00
32M     ./06-12-2021-01:01
176M    ./05-12-2021-02:30
27M     ./05-12-2021-15:30
30M     ./05-12-2021-18:30
37M     ./05-12-2021-13:00
31M     ./05-12-2021-20:30
753M    ./05-12-2021-23:30
752M    ./05-12-2021-19:30
43M     ./06-12-2021-14:30
38M     ./05-12-2021-14:30
91G     .

답변을 사용여기, 크기별로 정렬되지만 완전히 각 디렉터리로 반복됩니다.

$ command ls -dt */ | while IFS= read -r dir; do du -sh "$dir"; done
33G     05-12-2021-00:54/
33G     05-12-2021-02:11/
33G     05-12-2021-02:30/
33G     05-12-2021-10:44/
33G     05-12-2021-11:00/
33G     05-12-2021-11:30/
33G     05-12-2021-12:00/
33G     05-12-2021-12:30/
33G     05-12-2021-13:00/
33G     05-12-2021-13:30/
33G     05-12-2021-14:00/
33G     05-12-2021-14:30/
33G     05-12-2021-15:00/
33G     05-12-2021-15:30/
33G     05-12-2021-16:00/
33G     05-12-2021-16:30/
33G     05-12-2021-17:00/
33G     05-12-2021-17:30/
33G     05-12-2021-18:00/
33G     05-12-2021-18:30/
33G     05-12-2021-19:00/
33G     05-12-2021-19:30/
33G     05-12-2021-20:00/
33G     05-12-2021-20:30/
33G     05-12-2021-21:00/
33G     05-12-2021-21:30/
33G     05-12-2021-22:00/
33G     05-12-2021-22:30/
33G     05-12-2021-23:01/
33G     05-12-2021-23:30/
33G     06-12-2021-00:00/
33G     06-12-2021-00:31/
33G     06-12-2021-01:01/
33G     06-12-2021-01:30/
33G     06-12-2021-02:00/
33G     06-12-2021-02:30/
23G     06-12-2021-08:58/
33G     06-12-2021-11:33/
33G     06-12-2021-12:01/
33G     06-12-2021-12:31/
33G     06-12-2021-13:00/
33G     06-12-2021-13:30/
33G     06-12-2021-14:01/
33G     06-12-2021-14:30/
33G     06-12-2021-15:01/
33G     06-12-2021-15:31/
33G     06-12-2021-16:03/

나에게 필요한 것은 대답이다이것질문이 있지만 시간/날짜별로 정렬되어 있습니다.

여기에서 답변을 살펴봤지만 유용한 내용을 찾을 수 없습니다.
https://superuser.com/questions/147027/how-can-i-sort-the-output-of-ls-by-last-modified-date
각 하위 디렉터리의 크기를 요약하는 du(디스크 사용량) 명령 플래그가 있습니까?
https://stackoverflow.com/questions/37272935/unix-command-size-of-directory-with-order-by-size
디렉토리에 저장된 수량을 재귀적으로 찾는 방법은 무엇입니까?

답변1

du플래그를 지원하는 경우 편도 --time:

du --max-depth=1 --time | sort -k 2

두 번째 예(재귀 크기를 표시하지 않음)에 대한 솔루션은 -S다음에 플래그를 추가하는 것입니다 du.

ls -dt */ | while IFS= read -r dir; do du -Ssh "$dir"; done

하지만 이 명령은 너무 복잡합니다. 다음과 같이 더 쉽게 만들 수 있습니다.

du -Ssh "$(ls -Qdt /*)"

답변2

du출력을 파이프로 연결하여 sort -k 2두 번째 열을 기준으로 결과를 정렬할 수 있습니다.

du -h --max-depth=1 | sort -k 2

관련 정보