수정 시간을 기준으로 파일 번호 매기기

수정 시간을 기준으로 파일 번호 매기기

순서를 나타내기 위해 시작 부분에 두 개의 숫자를 추가하여 생성 시간에 따라 이름을 바꿔야 하는 파일 세트가 있습니다.

예를 들어 다음과 같은 파일이 있습니다.

Filename         Creation time
api.c            00:15
helloworld.h     00:05
ubuntu.iso       00:10

이름을 바꾼 후 파일 이름은 다음과 같아야 합니다.

01_helloworld.h
02_ubuntu.iso
03_api.c

어떻게 해야 하나요?

답변1

이는 또한 bash파이프 입구가 적다고 가정합니다.

ls -tr문서 인쇄가장 오래된 수정 사항먼저, 다른 사람들은 창작 시기에 대해 논평했습니다.

a=0, ls -tr | while read line; do printf "%s \'%s\' \'%03d_%s\'\n" mv "$line" $((a=a + 1)) "$line"; done|less

답변2

그리고 zsh:

( autoload zmv
set -- *(.Om)
pad=${#${#}}
zmv -n -Q '*(.Om)' '${(l:${pad}::0:)$((++i))}_$f' )

먼저 파일 수를 가져온 다음( flags 를 통해 제로 패딩 길이를 계산할 수 있음 l), 일반 파일만 선택하고 로 제거하는 glob 한정자를 활용하기 위해 zmvwith 를 사용하여 파일 이름을 바꿉니다 .-Q.Ommtime
-n시운전Switch) 결과에 만족한다면.

관련 정보