X일보다 오래된 파일을 찾아 크기별로 출력합니다.

X일보다 오래된 파일을 찾아 크기별로 출력합니다.

며칠보다 오래된 파일을 가져와서 ls크기와 모든 정보(크기, 전체 경로 등 - 제공된 내용과 유사)를 기준으로 내림차순으로 정렬하려고 합니다.

이전 파일을 찾을 수는 있지만 다음과 같습니다.

find . -mtime +10

필수 정보를 나열할 수 없습니다.

답변1

전제는 파일 경로입니다.원하지 않는다개행 문자를 포함합니다:

find . -mtime +10 -printf "%s %n %m %u %g %t %p" \( \
  -type l -printf ' -> %l\n' -o -printf '\n' \) | sort -k1,1 -n

바라보다find수동, 부분 Actions.

  • %s 파일 크기(바이트)입니다.
  • %n 수량하드 링크보관소.
  • %m 파일의 권한 비트(8진수).
  • %u 파일의 사용자 이름 또는 번호사용자 ID사용자에게 이름이 없는 경우.
  • %g 파일의 그룹 이름 또는 번호그룹 ID그룹에 이름이 없는 경우.
  • %t 파일의 마지막 수정 시간(C에서 반환한 형식)ctime기능.
  • %p 파일 이름.
  • %l 물체심볼릭 링크(파일이 심볼릭 링크가 아닌 경우 빈 문자열)

그런데: 참고하세요POSIX find위 작업의 대부분은 설명서에 지정되어 있지 않습니다.

답변2

이 명령은 find다음의 POSIX 기능 만 사용합니다 ls.

find . -type f -mtime +10 -exec ls -lS {} +

그러나 그것은가능한ls여러 번 호출되었습니다(있는 경우).매우 크다홈 디렉토리와 일치하는 현재 디렉토리(또는 재귀적으로 하위 디렉토리)에 있는 파일 수입니다 -mtime +10.

물론 ls여러 번 호출되는 경우 정렬은 ls여러 실행에 걸쳐 수행되지 않고 각 실행에서만 수행됩니다.

그러나 파일 수가 적당하다면 이것이 최선의 선택일 수 있습니다.

답변3

그리고 zsh:

ls -ldrS -- **/*(m+10)

또는 이중 정렬을 피하세요(zsh를 통해 이름으로 정렬, ls를 통해 크기로 정렬).

ls -ldrS -- **/*(m+10oN) # disable zsh sorting

또는 ( 정렬되지 않은 것을 ls지원하는 경우 -U):

ls -ldU -- **/*(m+10oL) # disable ls sorting and have zsh sort by size

D숨겨진 파일도 보려면 glob 한정자를 추가하세요.

답변4

이 시도:

find ./ -type f -mtime +10 -exec ls -ln {} \; | sort -r -k 5 -g

관련 정보