확장명이 아닌 파일 이름을 변경하려면 중괄호 확장을 사용하시겠습니까?

확장명이 아닌 파일 이름을 변경하려면 중괄호 확장을 사용하시겠습니까?

확장자가 다른 여러 파일이 포함된 디렉토리가 있지만 확장자 앞의 파일 이름은 모두 동일합니다. 예를 들어 file1.txt, file1.jpg, file1.pdf, file1.odt...

"file1" 부분만 변경하고 확장자는 변경하지 않기 때문에 결과는 newfilename.txt, newfilename.jpg, newfilename.pdf, newfilename.odt와 같습니다.

각각을 지루하게 실행하지 않고서는 mv file1.txt newfilename.txt이 작업을 수행하는 방법을 모르겠습니다. 확장하려는 부분을 모두 알고 있는 경우 중괄호 확장을 사용하여 파일 이름을 변경하는 많은 튜토리얼을 온라인에서 찾을 수 있지만 확장자가 무엇이든 file1을 newfilename으로 바꿀 수는 없습니다. 이것이 가능합니까, 아니면 잘못된 나무를 짖고 있습니까?

감사해요

편집: 죄송합니다. 이 글을 게시한 직후 Google 검색결과에서 이 질문에 대한 답변을 제공하는 다른 페이지를 발견했습니다. for f in file1.*; do mv "$f" "${f/file1/newfilename}"; done완벽하게 작동했습니다.

답변1

질문을 게시한 후 다음을 발견했습니다.

for f in file1.*; do mv "$f" "${f/file1/newfilename}"; done

기적적으로 작동합니다.

답변2

Bash를 사용하여 이 작업을 수행할 수 있지만 해당 작업에 더 적합한 다른 도구가 있습니다.

대부분의 배포판에서:

rename file1 newfilename file1.*

Debian 및 Ubuntu rename에서는 rename.ul.

관련 정보