mv
명령어
이것은 "이동"을 의미하며, 그것이 정확히 무엇을 하는지를 나타냅니다: 파일 시스템 내에서 파일과 디렉토리를 이동합니다. 하지만 mv
는 단순히 파일을 이동하는 것뿐만 아니라, 이를 rename하는 데에도 사용됩니다.
mv
소개
mv
명령어의 메커니즘을 파헤치기 전에, 리눅스 사용자의 도구 키트에서 필수적인 이유를 이해하는 것이 중요합니다. 리눅스의 파일 시스템은 계층적 구조이며, 파일과 디렉토리를 조직하는 것은 흔한 작업입니다. mv
명령어는 이 일의 주요 도구로, 간단하고 강력하며, 주의 깊게 사용할 경우 시간을 절약할 수 있습니다.
기본 구문
mv
명령어의 기본 구문은 다음과 같습니다:
mv [옵션] 원본 목적지
여기서 원본
은 이동하거나 rename하고자 하는 파일이나 디렉토리의 현재 위치를 나타내며, 목적지
는 대상 위치이거나 파일/디렉토리의 새 이름입니다.
파일 이동
파일을 이동하려면, 현재 파일의 위치를 원본으로, 새 위치를 목적지로 지정합니다. 예를 들어, file1.txt
라는 파일을 현재 디렉토리에서 /home/user/documents
로 이동하려면 다음과 같이 사용합니다:
mv file1.txt /home/user/documents/
이 명령을 실행한 후에는 file1.txt
는 더 이상 현재 디렉토리에 존재하지 않으며, /home/user/documents
에 있게 됩니다.
파일 이름 변경
파일의 이름을 변경하는 것은 사실 같은 위치에 다른 이름으로 이동하는 것입니다. 같은 디렉토리 내에서 file1.txt
를 newfile.txt
로 변경하려면 다음과 같이 사용합니다:
mv file1.txt newfile.txt
디렉토리 이동
디렉토리를 이동하는 방법은 파일을 이동하는 것과 유사합니다. my_directory
라는 디렉토리를 /home/user/
로 이동하려면 다음과 같이 사용합니다:
mv my_directory /home/user/
파일 덮어쓰기
기본적으로, 목적지에 같은 이름의 파일이 존재하면 mv
는 경고 없이 덮어씁니다. 실수로 파일을 덮어쓰는 것을 방지하기 위해, -i
(interactive) 옵션을 사용하는 것이 좋습니다. 이 옵션은 덮어쓰기 전에 확인을 요청합니다:
mv -i 원본 목적지
자세한 출력
-v
(verbose) 옵션을 사용하면 mv
가 수행하는 작업을 출력하여, 확인하는 데 도움이 됩니다:
mv -v 원본 목적지
고급 사용 예시
여러 파일 이동
한 번에 여러 파일을 이동할 수 있습니다. 목적지 앞에 이동하고자 하는 파일들을 나열하세요:
mv file1.txt file2.txt file3.txt /home/user/documents/
와일드카드 사용
와일드카드를 사용하여 패턴과 일치하는 파일 그룹을 이동할 수 있습니다:
mv *.txt /home/user/documents/ # 현재 디렉토리의 모든 .txt 파일을 /home/user/documents/로 이동합니다
속성 보존
-p
옵션은 타임스탬프와 접근 제어 목록과 같은 파일 속성을 보존합니다:
mv -p 원본 목적지
같은 이름의 디렉토리로 파일 이동
목적지 디렉토리가 원본 파일과 같은 이름을 가지고 있는 경우, 목적지가 슬래시로 끝나도록 하여 디렉토리를 덮어쓰지 않도록 주의해야 합니다:
mv file1.txt /home/user/file1.txt/ # 이것은 file1.txt를 /home/user/file1.txt 디렉토리로 이동합니다
주의해야 할 점
- 대소문자 구분: 리눅스 파일 시스템은 대소문자를 구분합니다. 파일 및 디렉토리 이름에 주의하세요;
File1.txt
와file1.txt
는 서로 다른 파일로 간주됩니다. - 덮어쓰기: 데이터 손실을 방지하기 위해
-i
또는-n
(no clobber) 옵션을 항상 사용하세요. - 권한: 파일을 이동할 수 있는 필요한 권한이 있는지 확인하세요. 특히 일반 사용자로 작업할 때 중요합니다.
- 같은 파일 시스템: 같은 파일 시스템 내에서 파일을 이동하면 파일 시스템의 메타데이터만 업데이트되므로 거의 즉각적으로 이루어집니다. 그러나 다른 파일 시스템 간에 파일을 이동하는 경우(예: 두 개의 하드 드라이브 간에) 실제로 데이터를 복사한 다음 원본을 삭제하므로 더 많은 시간이 걸립니다.
출력:s
다음은 다양한 옵션을 사용할 때 mv
에서 볼 수 있는 출력 예시입니다:
# 자세한 출력을 사용하여 파일 이동
$ mv -v file1.txt /home/user/documents/
'file1.txt' -> '/home/user/documents/file1.txt'
# 인터랙티브 확인을 사용하여 파일 이름 변경
$ mv -i file1.txt newfile.txt
mv: overwrite 'newfile.txt'? y
데이터 손실을 방지하기 위해 -i
또는 -n
옵션을 사용하고, -v
를 사용하여 자세한 출력으로 작업을 추적하세요. 연습을 통해 mv
는 당신에게 전문가처럼 리눅스 시스템을 탐색하는 데 필요한 두 번째 본능이 될 것입니다.