디렉토리의 모든 리프 파일을 시간 역순으로 나열하는 방법은 무엇입니까?

디렉토리의 모든 리프 파일을 시간 역순으로 나열하는 방법은 무엇입니까?

디렉토리가 주어지면 모든 리프 파일을 시간 역순으로 어떻게 나열합니까? ls -Rltr하위 디렉터리의 내용을 시간 역순으로 정렬하는 것이지만 파일을 하위 디렉터리별로 그룹화하므로 상위 디렉터리에 관계없이 모든 리프 파일을 시간 역순으로 나열해야 한다는 요구 사항이 깨집니다. 감사해요.

답변1

그리고 zsh:

printf '%s\n' **/*(D^om/:t)

zsh이는 현재 고유한 기능인 전역 한정자입니다.

  • D: 도트 파일을 포함합니다.
  • ^: 다음 한정자를 반전시킵니다.
  • om: 시간순 수정(반대 ^)
  • /^: 해당 유형의 파일을 제외(사용 )합니다.목차.
  • :t: 획득할 수 있는 수식어꼬리파일 이름(기본 이름)입니다.

(기본 이름뿐만 아니라 전체 경로를 원하면 삭제하면 됩니다 :t.)

bash다음을 제공하는 모든 쉘 과 함께 사용 가능 zsh:

zsh -c 'printf "%s\n" **/*(D^om/:t)'

또는 GNU 시스템에서는:

find . ! -type d -printf '%T@\t%f\0' | sort -zn |
  tr '\n\0' '\0\n' | cut -f2- | tr '\0' '\n'

(기본 이름뿐만 아니라 전체 경로를 원할 경우 or %f로 바꾸십시오 (여기서와 동일 )).%P%p./%P

관련 정보