[Linux] rename 명령어로 파일명 변경
by Heejin Do
rename 리눅스에서 파일명을 변경하는 명령어 중 하나이다.
사용법
> rename [options] [from_text] [to_text] [what_file]
# from_text: 변경 전 텍스트
# to_text: 변경 후 텍스트
# what_file: 변경할 파일
1. 단일 파일명 변경
예를 들어, file_ex 파일의 이름을 file2_ex로 변경 하고 싶을 때
file_ex
파일의 이름 중 file
부분을 file2
로 변경하면 되므로 아래처럼 명령어를 사용할 수 있다.
> rename file file2 file_ex
2. 복수 파일명 변경: 와일드 카드
아래 처럼 겹치는 텍스트를 가지는 파일들의 en-ko 부분을 ko-en으로 변경하고 싶을 때,
와일드카드(*)를 사용하여 한 번에 변경할 수 있다.
test.en-ko.en.bin
test.en-ko.en.idx
test.en-ko.ko.bin
test.en-ko.ko.idx
train.en-ko.en.bin
train.en-ko.en.idx
train.en-ko.ko.bin
train.en-ko.ko.idx
valid.en-ko.en.bin
valid.en-ko.en.idx
valid.en-ko.ko.bin
valid.en-ko.ko.idx
변경하고자 하는 부분은 en-ko
이고 변경 후 텍스트는 ko-en
이므로 아래 처럼 쓸 수 있다.
> rename en-ko ko-en [변경할 파일명]
여기서 [변경할 파일명]을 *en-ko* 로 적어주면 en-ko 앞 뒤로 0개 이상의 문자가 오는 경우를 의미하게 된다.
따라서 최종적으로 아래처럼 작성해주면 된다.
> rename en-ko ko-en \*en-ko\*
3. 원격에서 원격으로 (Remote→Remote)
> scp [유저명]@[IP주소]:[전송할 파일 경로] [유저명]@[IP주소]:[받을 경로]
EX) A 원격지의 /home/test.txt 파일을 B 원격지의 /home/example 디렉토리로 전송
> scp dhj@141.211.xx.xxx:/home/test.txt gildong@141.223.xx.xxx:/home/example
옵션 (options)
-r
: 폴더를 복사할 때 사용(전송 대상을 폴더로 지정). 모든 폴더들을 재귀적으로 복사함.-P
: ssh 포트 지정-i
: identity file을 지정해서 사용(identity file 경로를 지정)
> ex) scp -i ~/.ssh/dhj-server-private ~/example.txt dhj@141.223.xx.xxx:/home/test
-v
: 상세내용을 보면서 디버깅 할 때 사용(verbose 모드)-p
: 전송 시 파일 수정 시간과 권한을 유지
> ex) scp -P 22 dhj@141.223.xx.xxx:/home/dhj/example.txt /home/test
복수의 파일 전송
1. 로컬에서 원격으로 (Local→Remote)
> scp [옵션] [파일명1] [파일명2] [유저명]@[IP주소]:[받을 경로]
2. 원격에서 로컬로 (Remote→Local)
1번의 경우와 다르게 원격지에서 보낼 파일들의 경로를 “ “을 이용해 묶어준다.
> scp [옵션] [유저명]@[IP주소]:"[파일명1] [파일명2]" [받을 경로]
3. 원격에서 원격으로 (Remote→Remote)
마찬가지로 원격지에서 보낼 파일들의 경로를 “ “을 이용해 묶어준다.
> scp [옵션] [유저명]@[IP주소]:"[파일명1] [파일명2]" [유저명]@[IP주소]:[받을 경로]
Subscribe via RSS