이 글에서는 리눅스에서 mv 명령어를 사용해 파일을 이동하는 방법을 예제와 함께 소개하고, 파일을 안전하게 다루기 위한 유용한 팁까지 알려드립니다.
mv 명령어 기본 문법
파일을 이동할 때는 mv 명령어를 사용하며, 기본 문법은 다음과 같습니다.
mv OPTIONS SOURCE DESTINATION
각 항목의 의미는 다음과 같습니다.
- OPTIONS: 아래 표에 정리된 옵션 목록
- SOURCE: 이동하려는 파일의 경로
- DESTINATION: 파일을 이동할 목적지 경로
- 새 파일 이름을 포함할 수도 있고, 단순히 대상 폴더의 경로일 수도 있습니다.
- mv는 DESTINATION이 디렉터리(또는 디렉터리를 가리키는 링크)라면 SOURCE를 해당 디렉터리 안으로 이동시킵니다.
- DESTINATION이 디렉터리가 아니라면, mv는 SOURCE의 이름을 DESTINATION으로 변경합니다. 즉, 이름 바꾸기 기능으로 동작합니다.
자주 사용하는 mv 옵션
매뉴얼에 소개된 mv 명령어의 대표적인 옵션들은 다음과 같습니다.
| 옵션 | 설명 |
|---|---|
| -b | 덮어쓰기 전에 기존 대상 파일의 백업을 생성 |
| -f, --force | 덮어쓰기 전 확인 메시지를 표시하지 않음 |
| -i, --interactive | 덮어쓰기 전 사용자에게 확인을 요청 |
| -n, --no-clobber | 이미 존재하는 파일을 덮어쓰지 않음 |
| -u, --update | 원본(SOURCE) 파일이 대상 파일보다 최신인 경우 또는 대상 파일이 없는 경우에만 이동 |
| -v, --verbose | 진행 중인 작업 내용을 상세히 출력 |
그 외 추가 옵션이 궁금하다면 아래 명령어로 매뉴얼을 직접 확인할 수 있습니다.
man mv
실전 예제
file1을 directory1로 이동:
mv file1 directory1/
file1의 이름을 file2로 변경:
mv file1 file2
file1을 directory1로 이동하면서 이름을 file2로 변경:
mv file1 directory1/file2
directory1을 directory2 안으로 이동:
mv directory1/ directory2/
마지막 예제에서 directory2가 존재하지 않으면 directory1의 이름이 그대로 directory2로 변경됩니다. 단순히 이동만 하고, 대상 디렉터리가 없을 경우 작업이 실패하도록 하려면 다음과 같이 실행하세요.
mv directory1/ directory2/.
이렇게 하면 파일을 이동하기 전에 directory2가 실제로 존재하는지 먼저 확인하게 됩니다. 마침표(.)는 해당 경로가 반드시 존재해야 함을 지정하는 역할을 합니다.
이동보다 복사가 더 안전할 때도 있습니다
파일을 한 드라이브에서 다른 드라이브로 옮기거나 네트워크를 통해 전송하는 경우라면, 먼저 파일을 복사하고 복사가 성공적으로 완료되었음을 확인한 뒤 원본을 삭제하는 것이 좋습니다.
리눅스 명령줄 환경에는 휴지통이나 재활용통이 없기 때문에 실수로 삭제한 파일은 되돌릴 수 없습니다. 한 번 사라지면 끝입니다. 만약 파일 이동 작업이 어떤 이유로든 실패하면 파일을 잃어버릴 위험이 있으므로, 이동 대신 복사 후 성공 여부를 반드시 확인하는 방식이 이런 위험을 크게 줄여줍니다.
또한 데이터 손실에 대비하려면 중요한 파일을 정기적으로 백업하는 습관을 들이는 것이 좋습니다.