내 디스크는 많은 대용량 파일로 꽉 차 있어서 디스크에서 최신 파일과 가장 큰 파일 20개만 찾고 싶습니다. 어떻게 해야 하나요?
답변1
그리고 zsh
:
ls -lrtd -- **/*(D.OL[1,20])
가장 큰 파일 20개를 가장 오래된 것부터 최신 것 순으로 정렬합니다.
ls -lrtd -- **/*(D.OL[1,20]m-1)
동일하지만 지난 24시간 동안 마지막으로 수정된 파일에만 해당됩니다. 지난 시간으로 대체되었습니다 m-1
.mh-1
ls -lSd -- **/*(D.om[1,20])
최신 20개 파일을 크기(최소순)별로 정렬합니다.
ls -lSd -- **/*(D.om[1,20]LM+100)
동일하지만 100MiB보다 큰 파일에만 해당됩니다.
L
glob 한정자는 다음에 적용됩니다 .겉보기 크기자신의 것이 아닌 파일의 것디스크 사용량(보고 된대로 du
).
답변2
최신 20개 파일 찾기:
find . -type f -printf "%T@ %Tc %p\0" | sort -z -nr | head -z -n20
(에서 적응여기)
상위 20개 찾기:
find . -type f -printf "%s %p\0" | sort -z -nr | head -z -n20
아니면 더 간단하게
du -ba0 | sort -nr | head -z -n20
파일을 0으로 구분하는 대신 줄 바꿈으로 구분하려면 | tr '\0' '\n'
원형 차트 끝에 at을 추가해야 할 수도 있습니다.파일 이름에는 개행 문자가 포함될 수 있으므로 이는 일반적으로 좋은 생각이 아닙니다.; 이것이 위의 모든 예에서 0바이트 구분 기호를 사용하는 이유입니다(파일 이름은 0바이트를 포함할 수 없습니다).