현재 디렉토리에 있는 특정 확장자를 가진 모든 파일의 이름을 다른 확장자로 바꾸는 방법은 무엇입니까? [복사]

현재 디렉토리에 있는 특정 확장자를 가진 모든 파일의 이름을 다른 확장자로 바꾸는 방법은 무엇입니까? [복사]

중복 가능성:
여러 파일 이름 바꾸기(확장자 변경)

현재/작업 디렉터리에 5개의 파일이 있다고 가정해 보겠습니다.

file1.xvg
file2.xvg
file3.xvg
file1.eps
file2.eps

현재/작업 디렉토리의 모든 파일 이름을 확장자로 바꾸는 방법이 있습니까?.xvg새로운 확장 기능을 제공하세요.. txt(떠나다.주당 순 이익별도의 파일)? rename, 또는 를 사용하여 이 mv작업을 수행 할 수 있습니까 mmv? 저는 우분투 리눅스를 사용하고 있습니다. 감사해요!

답변1

특정 문제의 경우 이 명령이 작동합니다. 제안된 이름 변경에 만족하는지 확인한 후 삭제 -n하여 계속하세요.

rename -n 's/\.xvg$/.txt/' *.xvg

이는 기본적으로 현재 디렉토리에서 확장자를 가진 모든 파일에 대해 .xvg( )로 끝나는 파일을 찾아 이름의 해당 부분을 .$.xvg.txt

자세한 내용과 예시는 아래와 같습니다.


예, 이 rename명령이 해당 작업을 수행합니다. 디렉토리의 다른 파일을 무시하고 .html모든 파일의 이름을 확장자로 바꾸는 간단한 예입니다 ..html_bak

저 할 수 있어요강하게-n명령줄 옵션을 사용하는 것이 좋습니다첫 번째(아래 설명 참조) 실제 명령을 실행하기 전에 변경된 내용을 확인하세요.

나는 다음과 같이 시작했습니다.

$ ls
a.html  a.txt  b.html  htmlfile

접근 방식 -n은 "시험 실행"을 수행하는 것입니다. 아무것도 변경하지 않고 무엇이 변경될지 보여주기 위한 것입니다!

$ rename -n 's/\.html$/.html_bak/' *
a.html renamed as a.html_bak
b.html renamed as b.html_bak

원본 파일은 아직 남아있습니다.

$ ls
a.html  a.txt  b.html  htmlfile

이제 솔직해지자:

$ rename  's/\.html$/.html_bak/' *

파일 이름이 변경되었습니다.

$ ls
a.html_bak  a.txt  b.html_bak  htmlfile

위의 예에서는 *이름 바꾸기 작업에 고려할 파일을 지정했습니다. 으로 .html만 제한할 수 있습니다 *.html.

자세한 내용은 이름 바꾸기 매뉴얼 페이지를 참조하십시오.

답변2

이는 다음과 같이 수행할 수 있습니다.

rename 's/xvg$/txt/' *.xvg

glob 모드에서는 *.xvg파일만 영향을 받습니다.

관련 정보