파일 생성 날짜로 이름 바꾸기

파일 생성 날짜로 이름 바꾸기

생성된 날짜를 사용하여 이름을 바꾸고 싶은 파일이 있습니다. 이를 어떻게 자동화할 수 있나요? 각 파일의 속성을 살펴보고 이름을 바꾸는 것은 정말 힘든 일입니다. 예를 들어

폴더에 다음이 있다고 가정해 보겠습니다.

file1
file2
file3
file4
file5       
    . . . . . etc

파일 생성 날짜에 따라 파일 이름을 바꾸는 방법

file1_2018-10-06
file2_2013-10-12
file3_2014-09-26
file4_2018-10-06
file5_2017-11-13
    . . . . . etc

답변1

"만들기"는 mtime1 을 의미 하고 Perl 기반을 (ab) 사용한다고 가정합니다 rename.

$ rename -n 'BEGIN{use POSIX;} $_ .= strftime("_%x", localtime( (stat($_))[9] ))' file?
rename(file1, file1_2018-09-23)
rename(file2, file2_2018-09-15)
rename(file3, file3_2018-10-01)
rename(file4, file4_2018-09-15)
rename(file5, file5_2018-10-06)

( -n이것은 평가판 모드입니다. 제안된 이름 변경에 만족하면 제거하세요.)


1 이유는 다음과 같습니다.파일 생성 날짜를 찾는 방법은 무엇입니까?

답변2

다음을 수행할 수 있습니다.

#!/bin/bash
cd folder
ls -l --time-style=long-iso | awk '{print $8 " " $6}' | while IFS= read line; do

filename=$(echo $line | awk '{print $1}')
date=$(echo $line | awk '{print $2}')

mv ${filename} ${filename}_${date}

done

답변3

stat쓸 수 있는? 노력하다

stat -c"mv %n %n_%y" file* | sed 's/ [^ ]* [^ ]*$//'
mv file file_2018-10-04
mv file~ file~_2018-09-30
mv file1 file1_2018-10-05
mv file1~ file1~_2018-10-04

sh결과에 만족하면 파이프라인을 전달합니다. 또는 "프로세스 교체"를 통해 얻으십시오.

관련 정보