![수정된 날짜를 추가하기 위해 파일 이름을 일괄 바꾸는 방법은 무엇입니까? [복사]](https://linux55.com/image/166816/%EC%88%98%EC%A0%95%EB%90%9C%20%EB%82%A0%EC%A7%9C%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EC%9D%BC%EA%B4%84%20%EB%B0%94%EA%BE%B8%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
오늘과 어제 수정된 파일은 다음과 같습니다.
a.txt
b.png
나는 그것들의 이름을 다음과 같이 바꾸길 원합니다:
2020-02-01.a.txt
2020-01-31.b.png
단일 Bash 명령으로 이 작업을 어떻게 수행합니까?
답변1
ls | while read FILE; do mv "$FILE" "$(stat "$FILE" -c '%y' | cut -b -10). $FILE"; done
Windows 및 Linux Mint의 Git Bash에서 테스트되었습니다.
답변2
Perl 기반 rename
유틸리티 사용:
$ rename -n 'use POSIX qw(strftime); s/^/strftime("%Y-%m-%d.",localtime((stat $_)[9]))/e' *.*
rename(a.txt, 2020-02-01.a.txt)
rename(b.png, 2020-02-01.b.png)
(일부 시스템에서는 rename
로 제공될 수 있습니다 prename
.)