디렉토리가 주어지면 모든 리프 파일을 시간 역순으로 어떻게 나열합니까? 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