본문 바로가기
리눅스 생활 하고파

[리눅스 명령어] mv 기초부터 옵션까지 한 번에 정리

by 하고집 2026. 1. 15.
반응형

1. mv 란?

mv는 리눅스에서 파일이나 디렉터리를 이동(move) 하거나, 이름을 변경(rename) 할 때 사용하는 명령어다.
초보자 입장에서는 “이동”과 “이름 바꾸기”가 같은 명령어라는 점이 가장 헷갈릴 수 있는데, mv는 대상 위치(경로)를 바꾸면 이동, 파일명을 바꾸면 이름 변경으로 동작한다고 이해하면 쉽다.


2. 기본 사용 방법

 
mv [원본] [대상]
  • [대상]이 디렉터리 경로면: 원본을 그 디렉터리로 이동한다.
  • [대상]이 새 파일명이면: 원본의 이름을 바꾼다.

2.1 파일 이동 예시

 
mv a.txt /tmp/

a.txt를 /tmp/ 디렉터리로 이동한다.

2.2 파일 이름 변경 예시

 
mv a.txt b.txt

a.txt의 이름을 b.txt로 바꾼다.


3. 자주 사용하는 옵션 정리

3.1 -i : 덮어쓰기 전에 확인(Interactive)

 
mv -i a.txt /tmp/

대상 위치에 같은 이름의 파일이 이미 있으면, 덮어쓸지 물어본다.
실무에서 실수로 파일을 날리는 사고를 막는 데 도움이 된다.

  • “같은 이름 파일이 있으면 덮어쓰는 게 기본 동작”이라는 점을 꼭 기억하자.
  • 중요한 디렉터리에서 작업할 때는 -i를 붙이는 습관이 안전하다.

3.2 -n : 덮어쓰지 않기(No clobber)

 
mv -n a.txt /tmp/

대상 파일이 이미 존재하면 아무 작업도 하지 않고 넘어간다.
자동화 스크립트에서 “기존 파일을 보존”해야 할 때 유용하다.

  • -i는 물어보고 진행할 수 있지만,
  • -n은 절대 덮어쓰지 않는다는 점이 차이점이다.

3.3 -f : 강제로 덮어쓰기(Force)

 
mv -f a.txt /tmp/

대상 파일이 있어도 묻지 않고 덮어쓴다.
배치 작업이나 CI/CD 같은 자동화 환경에서 사용되기도 하지만, 초보자에게는 위험할 수 있다.

  • -i와 같이 쓰면 보통 마지막 옵션이 우선되는 경우가 많아 의도와 다르게 동작할 수 있다.
  • 실무에서는 “정말 덮어써도 되는지”가 확실할 때만 사용한다.

3.4 -v : 실행 과정 출력(Verbose)

 
mv -v a.txt /tmp/

무엇을 어디로 옮겼는지 작업 내용을 출력한다.
초보자나 로그가 필요한 상황에서 특히 유용하다.


3.5 -u : 더 새 파일일 때만 이동(Update)

 
mv -u a.txt /tmp/

대상 파일이 존재하더라도, 원본이 더 “최신”일 때만 이동한다.
백업/동기화 성격의 작업에서 쓰인다.


3.6 -t : 대상 디렉터리를 먼저 지정(Target directory)

 
mv -t /tmp/ a.txt b.txt c.txt

여러 파일을 한 번에 옮길 때, 대상 디렉터리를 명확히 지정할 수 있다.
스크립트 작성 시 가독성이 좋아지는 편이다.


4. 옵션 조합 예제 (이건 꼭!)

4.1 가장 안전한 실무 기본 조합

 
mv -iv a.txt /tmp/
  • -i로 덮어쓰기 확인
  • -v로 무엇을 했는지 출력

👉 초보자라면 이 조합을 기본값처럼 써도 좋다.


4.2 스크립트에서 안전하게 “덮어쓰기 방지”하려면

 
mv -nv a.txt /tmp/
  • -n으로 덮어쓰기 금지
  • -v로 로그 확인

4.3 여러 파일을 한 디렉터리로 이동(명확한 표기)

 
mv -vt /tmp/ a.txt b.txt c.txt
  • -t로 대상 디렉터리를 먼저 고정
  • -v로 이동 로그 확인

5. 초보자가 자주 하는 실수

5.1 “이름 변경”인데 대상이 디렉터리인 줄 모르고 이동해버림

 
mv report /backup

/backup이 디렉터리면 report는 그 안으로 이동한다.
이름을 backup으로 바꾸려던 의도였다면, 경로/존재 여부를 먼저 확인해야 한다.

  • 해결 팁: 대상이 디렉터리인지 확인하려면 ls -ld 대상경로를 써보자.

5.2 덮어쓰기 사고(가장 흔함)

 
mv a.txt /tmp/

/tmp/a.txt가 이미 있으면 묻지 않고 덮어쓴다.
실무에서 데이터 유실 사고가 자주 발생하는 지점이다.

  • 해결 팁: 중요한 작업에는 mv -i 또는 mv -iv 사용

5.3 와일드카드(*) 사용 시 의도치 않은 대량 이동

 
mv *.log /tmp/

생각보다 많은 파일이 이동할 수 있다.
특히 운영 서버에서 로그를 옮길 때는 먼저 ls *.log로 대상 확인 후 실행하는 습관이 안전하다.


6. 정리 한 줄 요약

  • mv는 이동이름 변경을 모두 하는 명령어다.
  • 이것만 기억하자: 안전하게 쓰려면 mv -iv 원본 대상

 

 

[리눅스 기초 개념] 상대경로와 절대경로 완전 정리 (명령어 사용 전 필수)

1. 왜 상대경로와 절대경로를 알아야 할까?리눅스 명령어를 쓰다 보면 항상 따라붙는 것이 **경로(path)**다.특히 find, cp, mv, rm, grep 같은 명령어는**“어디에 있는 파일을 대상으로 하느냐”**에 따

bobo.yoing.co.kr

 

반응형