개발 이야기

[linux] 파일 이름 변경 명령어 rename

ANDYLION 2023. 9. 4. 16:24
728x90
반응형

 

 

linux / android platform 환경에서 개발하다 보면 특정 파일들은 버전정보를 파일명에 포함하여 생성되는 경우들이 존재합니다. 그 이유는 해당 so 파일들의 버전 정보를 알기 위해 그와 같이 버전 정보를 파일명 뒤에 붙여줍니다.

그러나 linux / android platform에서 버전정보를 제외한 파일을 load해야하기 때문에 버전정보를 제거한 심볼을 생성하거나 파일명 변경이 필요합니다.

그래서 다음과 같이 여러 파일을 rename을 사용하여 변경이 필요하며

다음과 같이 여러 파일에 대한 rename이 필요한 경우가 존재합니다.

뒤에 1.0.5235라는 버전 정보가 포함된 상태로 라이브러리 파일들이 생성되었습니다.

내가 필요한 파일은 a.so인데 빌드 결과물에 버전 정보를 포함하여 생성된 경우 파일 이름의 변경이 필요합니다.

파일이 하나인 경우 mv나 rename을 통해 간단하게 할 수 있지만 많은 파일을 한번에 수정하기 위해서는 다음과 같이 수정 해야 합니다.

$ rename .so.1.0.5235 .so *.so.1.0.5235

$ ls -al
drwxr-xr-x 1 andy andy 4096 Aug 31 11:54 .
drwxr-x--- 1 andy andy 4096 Aug 31 11:43 ..
-rwxr-xr-x 1 andy andy    0 Aug 31 11:43 a.so
-rwxr-xr-x 1 andy andy    0 Aug 31 11:43 b.so
-rwxr-xr-x 1 andy andy    0 Aug 31 11:43 c.so
-rwxr-xr-x 1 andy andy    0 Aug 31 11:43 d.so
-rwxr-xr-x 1 andy andy    0 Aug 31 11:44 e.so

OR

$ rename -v 's/\.1.0.5235$//' *.so.1.0.5235

$ ls -al
drwxr-xr-x 1 andy andy 4096 Aug 31 11:54 .
drwxr-x--- 1 andy andy 4096 Aug 31 11:43 ..
-rwxr-xr-x 1 andy andy    0 Aug 31 11:43 a.so
-rwxr-xr-x 1 andy andy    0 Aug 31 11:43 b.so
-rwxr-xr-x 1 andy andy    0 Aug 31 11:43 c.so
-rwxr-xr-x 1 andy andy    0 Aug 31 11:43 d.so
-rwxr-xr-x 1 andy andy    0 Aug 31 11:44 e.so

rename 명령어는 파일 이름을 변경하는 데 사용되는 명령어입니다. mv 명령어와 비슷하지만, mv 명령어는 파일을 다른 위치로 이동하거나 파일 이름을 변경하는 데 사용되는 반면, rename 명령어는 단순히 파일 이름만 변경하는 데 사용됩니다.

rename 명령어의 기본 형식은 다음과 같습니다.

rename [옵션] [원본 파일 이름] [새 파일 이름]

옵션에는 다음과 같은 것들이 있습니다.

  • -v: 변경된 파일 이름을 출력합니다.
  • -n: 변경된 파일 이름을 출력하지 않고 오류만 출력합니다.
  • -f: 기존 파일 이름이 존재하면 덮어씁니다.
  • -i: 기존 파일 이름이 존재하면 사용자에게 확인합니다.
  • -l: 심볼릭 링크의 대상을 변경합니다.

 

예를 들어, 다음 명령은 file1.txt 파일의 이름을 file2.txt로 변경합니다.

rename file1.txt file2.txt

 

다음 명령은 file1.txt 파일의 확장자를 .bak로 변경합니다.

rename file1.txt file1.bak

 

rename 명령어는 다음과 같은 경우에 유용합니다.

  • 파일 이름을 일괄적으로 변경합니다.
  • 파일 확장자를 변경합니다.
  • 심볼릭 링크의 대상을 변경합니다.
728x90
반응형
SMALL