리눅스 명령어 · 3 min read · Sep 13, 2025
리눅스 mv 명령어 초보자를 위한 설명 (8가지 예제)

복사하기 위한 cp와 삭제하기 위한 rm처럼, 리눅스는 파일을 이동하고 이름을 바꾸기 위한 내장 명령어를 제공합니다. 그것은 mv라고 불립니다. 이 기사에서는 이해하기 쉬운 예제를 사용하여 이 명령줄 도구의 기본 사항을 논의할 것입니다. 이 튜토리얼에서 사용된 모든 예제는 Ubuntu 22.04 LTS에서 테스트되었습니다.
리눅스 mv 명령어
이미 언급했듯이, 리눅스의 mv 명령어는 파일을 이동하거나 이름을 바꾸는 데 사용됩니다. 다음은 명령어의 구문입니다:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...그리고 man 페이지에서 다음과 같이 설명합니다:
SOURCE를 DEST로 이름을 바꾸거나, SOURCE(s)를 DIRECTORY로 이동합니다.다음의 Q&A 스타일의 예제들은 이 도구가 어떻게 작동하는지에 대한 더 나은 아이디어를 제공할 것입니다.
Q1. 리눅스에서 mv 명령어를 사용하는 방법은?
파일의 이름만 바꾸고 싶다면, 다음과 같이 mv 명령어를 사용할 수 있습니다:
mv [filename] [new_filename]예를 들어:
mv names.txt fullnames.txt마찬가지로, 파일을 새 위치로 이동해야 하는 경우, 다음과 같이 mv 명령어를 사용합니다:
mv [filename] [dest-dir]
예를 들어:
mv fullnames.txt /home/himanshu/DownloadsQ2. mv가 덮어쓰기 전에 프롬프트를 표시하도록 하려면?
기본적으로 mv 명령어는 기존 파일을 덮어쓰는 작업이 포함될 때 프롬프트를 표시하지 않습니다. 예를 들어, 다음 스크린샷은 기존의 full_names.txt가 경고나 알림 없이 mv에 의해 덮어써졌음을 보여줍니다.
그러나 원한다면 -i 명령줄 옵션을 사용하여 mv가 프롬프트를 표시하도록 강제할 수 있습니다.
mv -i [file_name] [new_file_name]
따라서 위의 스크린샷은 -i가 기존 파일을 덮어쓰기 전에 사용자에게 허가를 요청하도록 mv를 유도함을 명확히 보여줍니다. 덮어쓰기 전에 mv가 프롬프트를 표시하지 않도록 명시적으로 지정하고 싶다면 -f 명령줄 옵션을 사용하십시오.
Q3. mv가 기존 파일을 덮어쓰지 않도록 하려면?
이를 위해서는 -n 명령줄 옵션을 사용해야 합니다.
mv -n [filename] [new_filename]다음 스크린샷은 ‘full_names.txt’라는 이름의 파일이 이미 존재하고 명령어에 -n 옵션이 포함되어 있어 mv 작업이 성공하지 않았음을 보여줍니다.
참고:
-i, -f, -n 중 하나 이상을 지정하면, 마지막 것만 적용됩니다.Q4. mv가 소스 인수에서 후행 슬래시를 제거하도록 하려면?
소스 인수에서 후행 슬래시를 제거하려면, 아래와 같이 –strip-trailing-slashes 명령줄 옵션을 사용하십시오.
mv --strip-trailing-slashes [source] [dest]공식 문서에서는 이 옵션의 유용성을 다음과 같이 설명합니다:
소스 인수에 후행 슬래시가 있을 수 있고, 디렉토리에 대한 심볼릭 링크를 지정할 때 유용합니다. 이 시나리오는 일부 셸이 이러한 심볼릭 링크에서 파일 이름 완성을 수행할 때 자동으로 후행 슬래시를 추가할 수 있기 때문에 사실 꽤 일반적입니다. 이 옵션이 없으면, 예를 들어 `mv`는 (시스템의 이름 바꾸기 기능을 통해) 후행 슬래시를 심볼릭 링크를 역참조하라는 요청으로 해석해야 하므로 간접적으로 참조된 *디렉토리*의 이름을 바꿔야 하고 심볼릭 링크의 이름을 바꿀 수 없습니다. 이러한 동작이 기본값이라는 것이 놀라울 수 있지만, 이는 POSIX에 의해 요구되며 해당 표준의 다른 부분과 일치합니다.Q5. mv가 대상을 일반 파일로 처리하도록 하려면?
대상 엔티티가 디렉토리가 아닌 일반 파일로 처리되도록 하려면 -T 명령줄 옵션을 사용하십시오.
mv -T [source] [dest]이 명령줄 옵션이 존재하는 이유는 다음과 같습니다:
공유 영역에서 작동하는 프로그램에서 경쟁 조건을 피하는 데 도움이 될 수 있습니다. 예를 들어, 'mv /tmp/source /tmp/dest' 명령이 성공하면 /tmp/source가 /tmp/dest로 이름이 바뀌었다는 보장이 없으며, 다른 프로세스가 /tmp/dest를 디렉토리로 생성했을 경우 /tmp/dest/source로 이름이 바뀌었을 수 있습니다. 그러나 mv -T /tmp/source /tmp/dest가 성공하면 /tmp/source가 /tmp/dest로 이름이 바뀌었다는 것은 의심의 여지가 없습니다.반대 상황에서는 마지막 피연산자를 디렉토리로 처리하고 그렇지 않을 경우 진단을 원한다면 --target-directory (-t) 옵션을 사용할 수 있습니다.Q6. mv가 파일을 이동할 때 대상 파일보다 최신일 때만 이동하도록 하려면?
시스템의 Downloads 디렉토리에 fullnames.txt라는 파일이 존재하고, 홈 디렉토리에 같은 이름의 파일이 있다고 가정해 보겠습니다. 이제 ~/fullnames.txt로 ~/Downloads/fullnames.txt를 업데이트하고 싶지만, 후자는 최신일 때만 업데이트하고 싶습니다. 이 경우 -u 명령줄 옵션을 사용해야 합니다.
mv -u ~/fullnames.txt ~/Downloads/fullnames.txt이 옵션은 셸 스크립트 내에서 이러한 결정을 내려야 할 때 특히 유용합니다.
Q7. mv가 수행하는 모든 작업의 세부 정보를 출력하도록 하려면?
mv가 정확히 무엇을 하고 있는지 설명하는 정보를 출력하도록 하려면 -v 명령줄 옵션을 사용하십시오.
mv -v [filename] [new_filename]예를 들어, 다음 스크린샷은 mv가 정확히 무엇을 했는지에 대한 유용한 세부 정보를 출력하는 것을 보여줍니다.
Q8. mv가 기존 대상 파일의 백업을 생성하도록 강제하려면?
이것은 -b 명령줄 옵션을 사용하여 수행할 수 있습니다. 이렇게 생성된 백업 파일은 대상 파일과 동일한 이름을 가지지만, 그 뒤에 물결표(~)가 추가됩니다. 예를 들어:
결론
이제 mv가 cp와 rm만큼 중요하다는 것을 알 수 있습니다. 파일의 이름을 바꾸고 이동하는 것은 기본 작업 중 하나입니다. 이 도구가 제공하는 대부분의 명령줄 옵션을 논의했습니다. 따라서 이들을 연습하고 명령어를 사용하기 시작할 수 있습니다. mv에 대해 더 알고 싶다면, man 페이지로 이동하십시오. HowtoForge에는 tee 명령어와 같은 다른 리눅스 명령어 튜토리얼도 있습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.