설명

설명

디렉터리나 하위 디렉터리 중 하나에 있는 파일 이름을 잊어버렸습니다. 파일 확장자(.nb)를 기억하고 대략 언제 생성되었는지 알고 있습니다. 생성 날짜와 함께 현재 디렉터리 및 하위 디렉터리에 있는 이 확장자를 가진 모든 파일을 어떻게 나열할 수 있습니까? 저는 Mac OS X를 사용하고 있습니다.

답변1

이를 수행하는 쉬운 방법은 다음과 같습니다.zsh, macOS에 기본적으로 설치됩니다. 그것은글로벌 한정자타임스탬프와 기타 메타데이터를 기준으로 파일을 선택하고 정렬할 수 있습니다. Zsh는 생성 시간을 지원하지 않지만 수정 시간과 inode 변경 시간은 지원합니다. 그 중 하나는 아마도 생성 시간과 일치할 것입니다.

현재 디렉터리와 해당 하위 디렉터리( ) 에 확장자가 있는 100( [1,100])개의 최신( om) 일반( .) 파일이 나열됩니다..nb**/

zsh -c 'ls -ltr **/*.nb(.om[1,100])'

여기에는 7~14일 전에 수정된 파일이 나열됩니다.

zsh -c 'ls -ltr **/*.nb(.m+6m-14)'

답변2

이것은 당신이 원하는 것을 달성해야합니다.

find . -type f -name '*.nb'|xargs stat -f '%c %N'|sort

설명

find . -type f -name '*.nb'.nb 확장자를 가진 모든 파일을 찾습니다.

xargs stat -f '%c %N'앞에 유닉스 타임스탬프가 있는 파일을 인쇄합니다.

sort정렬하세요.

답변3

Bash의 경우(Mac 아님):

find . -type f -iname '*.nb'| xargs -d '\n' stat -c '%z %N'|sort

현재 디렉토리와 그 아래에서 패턴과 일치하는 'file' 유형의 모든 항목을 찾습니다.

(-iname은 대소문자를 무시함)

xargs로 파이프

(-d '\n' 구분 기호를 줄 바꿈으로 변경하여 파일 이름에 공백을 허용합니다)

그럼 통계로

(출력 형식 %z의 경우 -c = 마지막 상태 변경 %N 인용 파일 이름)

그리고 출력을 정렬

답변4

find -name '*.nb' -exec ls -rtl {} +

패턴과 일치하는 모든 파일에 대한 자세한 정보를 표시하고 가장 오래된 파일부터 최신 파일까지 정렬합니다( 명령 r에서 옵션을 제거하면 최신 파일부터 오래된 파일까지 정렬할 수 있음 ls).

끝에는 +일치하는 항목마다 명령을 실행하는 대신 검색이 끝날 때 명령을 실행한다는 의미입니다.

메모: 이것은 합당한 양의 일치에서만 작동합니다. 명령줄이 너무 길어서 ls여러 개의 로 분할되어 ls여러 개의 하위 집합이 정렬되지만 전체 목록은 올바르게 정렬되지 않습니다(@Gilles 및 감사합니다) 그것을 지적해 주신 @rudimeier).

관련 정보