웹사이트 검색

초보자를 위한 Linux mv 명령 설명(예제 8개)


이 페이지에서

  1. Linux mv 명령
  2. Q1. Linux에서 mv 명령을 사용하는 방법은 무엇입니까?\n
  3. Q2. 덮어 쓰기 전에 mv 프롬프트를 확인하는 방법은 무엇입니까?\n
  4. Q3. mv가 기존 파일을 덮어쓰지 않게 만드는 방법은 무엇입니까?
  5. Q4. 소스 인수에서 mv가 후행 슬래시(있는 경우)를 제거하는 방법은 무엇입니까?\n
  6. Q5. mv가 대상을 일반 파일로 취급하게 만드는 방법은 무엇입니까?\n
  7. Q6. 대상 파일보다 최신인 경우에만 mv 이동 파일을 만드는 방법은 무엇입니까?
  8. Q7. mv가 수행하는 모든 작업에 대한 세부 정보를 내보내는 방법은 무엇입니까?\n
  9. Q8. mv가 기존 대상 파일의 백업을 생성하도록 강제하는 방법은 무엇입니까?\n
  10. 결론

복사를 위한 cp 및 삭제를 위한 rm과 마찬가지로 Linux는 파일 이동 및 이름 바꾸기를 위한 내장 명령도 제공합니다. mv라고 합니다. 이 기사에서는 이해하기 쉬운 예제를 사용하여 이 명령줄 도구의 기본 사항에 대해 설명합니다. 이 튜토리얼에 사용된 모든 예제는 Ubuntu 22.04 LTS에서 테스트되었습니다.

리눅스 mv 명령

이미 언급했듯이 Linux의 mv 명령은 파일을 이동하거나 이름을 바꾸는 데 사용됩니다. 다음은 명령 구문입니다.

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

그리고 매뉴얼 페이지가 그것에 대해 말하는 내용은 다음과 같습니다.

Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

다음 Q&A 스타일의 예를 통해 이 도구의 작동 방식을 더 잘 이해할 수 있습니다.

Q1. Linux에서 mv 명령을 사용하는 방법은 무엇입니까?

파일 이름만 바꾸려면 다음과 같은 방법으로 mv 명령을 사용할 수 있습니다.

mv [filename] [new_filename]

예를 들어:

mv names.txt fullnames.txt

마찬가지로 요구 사항이 파일을 새 위치로 이동하는 것이라면 다음과 같은 방식으로 mv 명령을 사용합니다.

mv [파일 이름] [대상 디렉터리]

예를 들어:

mv fullnames.txt /home/himanshu/Downloads

Q2. 덮어 쓰기 전에 mv 프롬프트를 확인하는 방법은 무엇입니까?

기본적으로 mv 명령은 작업에 기존 파일을 덮어쓰는 것과 관련된 메시지가 표시되지 않습니다. 예를 들어 다음 스크린샷은 기존 full_names.txt를 경고나 알림 없이 mv로 덮어쓴 것을 보여줍니다.

그러나 원하는 경우 -i 명령줄 옵션을 사용하여 mv가 프롬프트하도록 강제할 수 있습니다.

mv -i [파일 이름] [새 파일 이름]

따라서 위의 스크린샷은 -i가 기존 파일을 덮어쓰기 전에 사용자 권한을 요청하는 mv로 이어진다는 것을 명확하게 보여줍니다. 덮어쓰기 전에 mv 프롬프트를 표시하지 않도록 명시적으로 지정하려는 경우 -f 명령줄 옵션을 사용하세요.

Q3. mv가 기존 파일을 덮어쓰지 않게 만드는 방법은 무엇입니까?

이를 위해서는 -n 명령줄 옵션을 사용해야 합니다.

mv -n [filename] [new_filename]

다음 스크린샷은 이름이 full_names.txt인 파일이 이미 존재하고 명령에 -n 옵션이 있어 mv 작업이 성공하지 못한 것을 보여줍니다.

메모:

If you specify more than one of -i, -f, -n, only the final one takes effect.

Q4. 소스 인수에서 mv가 후행 슬래시(있는 경우)를 제거하는 방법은 무엇입니까?

소스 인수에서 후행 슬래시를 제거하려면 아래와 같이 --strip-trailing-slashes 명령줄 옵션을 사용하세요.

mv --strip-trailing-slashes [source] [dest]

공식 문서에서 이 옵션의 유용성을 설명하는 방법은 다음과 같습니다.

This is useful when a source argument may have a trailing slash and specify a symbolic link to a directory. This scenario is in fact rather common because some shells can automatically append a trailing slash when performing file name completion on such symbolic links. Without this option, mv, for example, (via the system’s rename function) must interpret a trailing slash as a request to dereference the symbolic link and so must rename the indirectly referenced directory and not the symbolic link. Although it may seem surprising that such behavior be the default, it is required by POSIX and is consistent with other parts of that standard.

Q5. mv가 대상을 일반 파일로 취급하게 만드는 방법은 무엇입니까?

대상 엔터티가 디렉터리가 아닌 일반 파일로 처리되도록 하려면 -T 명령줄 옵션을 사용합니다.

mv -T [source] [dest]

이 명령줄 옵션이 존재하는 이유는 다음과 같습니다.

This can help avoid race conditions in programs that operate in a shared area. For example, when the command ‘mv /tmp/source /tmp/dest’ succeeds, there is no guarantee that /tmp/source was renamed to /tmp/dest: it could have been renamed to/tmp/dest/source instead, if some other process created /tmp/dest as a directory. However, if mv -T /tmp/source /tmp/dest succeeds, there is no question that/tmp/source was renamed to /tmp/dest.
In the opposite situation, where you want the last operand to be treated as a directory and want a diagnostic otherwise, you can use the --target-directory (-t) option.

Q6. 대상 파일보다 최신인 경우에만 mv 이동 파일을 만드는 방법은 무엇입니까?

시스템의 다운로드 디렉토리에 fullnames.txt라는 파일이 있고 홈 디렉토리에 같은 이름의 파일이 있다고 가정합니다. 이제 ~/Downloads/fullnames.txt를 ~/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에 대해 자세히 알아보려면 tee 명령으로 이동하십시오.