Mac OS X에서 파일 이름을 일괄적으로 바꾸는 방법은 무엇입니까?

Mac OS X에서 파일 이름을 일괄적으로 바꾸는 방법은 무엇입니까?

MOV001.mpg, MOV002.mpg 등과 같은 이름을 가진 파일이 많이 있습니다. 모두 날짜-시간이 다릅니다.

2012 08 05 13 45 33 MOV001.mpg, 2012 09 02 23 45 07 MOV002.mpg 등으로 바뀌도록 이름을 바꾸려면 어떻게 해야 합니까?

즉, 이름을 바꾼 파일에서 날짜 및 시간 정보를 어떻게 추출할 수 있습니까?

미리 감사드립니다.

답변1

테스트되지 않음:

for f in *.mpg; do
  mv "$f" "$(stat -f "%m" -t "%Y %m %d %H %M %S" "$f") $f"
done

stat -f "%m"파일의 마지막 수정 날짜를 생성해야 하며 -t "%Y %m %d %H %M %S"요구 사항에 따라 날짜 형식을 지정해야 합니다.

답변2

원래 질문은 결과 파일도 파일 확장자로 끝나는 것을 지정합니다. 이식 가능한 방식으로 이 작업을 수행하려면 bash에서 내장된 확장 기능을 가져와 /path/to/file.ext다음 ${f##*.}과 같은 한 줄의 결과를 얻습니다.

for f in *.FOO; do mv "$f" "$( /usr/bin/stat -f "%Sm" -t "%Y%m%d_%H%M%S" ).${f##*.}" ; done

그리고 코드 블록은

for f in *.FOO ; do
    mv "$f" "$( /usr/bin/stat -f "%Sm" -t "%Y%m%d_%H%M%S" ).${f##*.}"
done

따라서 FOO를 변경하면(예: *.mpg에서 *.png로) 출력 파일 이름이 정상입니다.

관련 정보