파일 수정 날짜를 기준으로 bash 스크립트에서 파일 이름 바꾸기

파일 수정 날짜를 기준으로 bash 스크립트에서 파일 이름 바꾸기

쉘스크립팅을 배우기 시작한지는 꽤 됐습니다. 그러나 FTP를 통해 업로드된 파일 확장자를 기반으로 파일 이름을 바꾸는 쉘 스크립트가 있습니다.

현재 파일은 FTP 프로세스를 통해 서버에 업로드됩니다. 모든 파일의 이름이 다음으로 변경되었습니다.파일명.txt도착하다파일 이름.dat. 내가 원하는 것은 파일 수정 날짜를 기준으로 특정 시간(분) 후에 파일 이름을 바꾸는 것뿐입니다.

이는 5분 이상 전에 수정된 모든 파일입니다.
-m시간 -5.

아래는 내 쉘 스크립트입니다.

#!/bin/bash
for name in /u/easy/ep2/data/download/*.txt; do
    newname=${name%.txt}.log
    mv "$name" "$newname"
done

답변1

+55분 이상이 필요합니다 .

find /u/easy/ep2/data/download -maxdepth 1 -name '*.txt' -mtime +5 \
    -exec sh -c 'mv "$1" "${1%.txt}.log"' arg0ignored {} \;

편집하다

예:

$ find /tmp -maxdepth 1 -name '*.txt' -mtime +5 -exec sh -c 'echo mv "$1" "${1%.txt}.log"' x0 '{}' \;
mv /tmp/1.txt /tmp/1.log
mv /tmp/2.txt /tmp/2.log

관련 정보