반응형
[Linux] 리눅스 mv 명령어, mv 명령어 옵션 총정리, 리눅스 기본 명령어
※ 목차
1. 리눅스 mv 명령어란???
2. 리눅스 mv 명령어 사용법
3. 리눅스 mv 명령어 옵션
4. 리눅스 mv 명령어 옵션 사용법
1. 리눅스 mv 명령어란???
- move의 줄임말로 지정한 파일이나 디렉토리를 원하는 위치로 이동할 때 사용합니다.
- mv 명령어는 파일이나 디렉토리의 이름을 변경할 때도 사용합니다.
- 같은 볼륨 내에 이동할 경우 기존 부모 디렉터리에서 링크가 제거되고 새로운 부모 디렉터리로 추가되는 개념입니다.
2. 리눅스 mv 명령어 사용법
mv [옵션] [파일 또는 디렉토리] [파일 또는 디렉토리]
- mv 명령어는 파일 및 디렉토리를 이동할 수 있습니다
[ server 2022-04-08 15:24:31 ] ~/testdir
user@server # ls -l
total 4
drwxr-xr-x 2 user user 6 Apr 8 15:23 apple
-rw-r--r-- 1 user user 23 Apr 8 15:24 file1
### 아래 3가지 명령어는 모두 같은 결과 값을 나타 냅니다.###
[ server 2022-04-08 15:25:13 ] ~/testdir
user@server # mv file1 apple
[ server 2022-04-08 15:24:34 ] ~/testdir
user@server # mv file1 apple/
[ server 2022-04-08 15:25:50 ] ~/testdir
user@server # mv file1 ./apple/.
※ 점(.) 한 개는 현재 디렉토리를 의미하며 점두개(..)는 상위 디렉토리를 의미합니다.
즉, mv file1 ./apple/. 의 의미는 mv 명령어로 file1의 파일을 현재디렉토리(점 '.') 하위에있는(구분선 '/') apple 디렉토리 하위에 파일을 이동한다는 의미입니다.
- mv 명령어로 파일을 덮어쓰기 할 수 있습니다.
- mv file1 file2 명령을 실행하면 file1의 내용이 file2라는 새로운 파일을 가지게 되고 file1이 가지고 있던 정보의 값을 그대로 가져오게 됩니다. 기존의 file2의 파일은 제거됩니다.
[ server 2022-04-08 15:35:08 ] ~/testdir
user@server # ls -l
total 8
drwxr-xr-x 2 user user 6 Apr 8 15:27 apple
-rw-r--r-- 1 user user 23 Apr 8 15:24 file1
-rw-r--r-- 1 user user 17 Apr 8 15:35 file2
[ server 2022-04-08 15:35:09 ] ~/testdir
user@server # cat file1
Hello, My name is Song
[ server 2022-04-08 15:35:11 ] ~/testdir
user@server # cat file2
Nice to meet you
[ server 2022-04-08 15:35:13 ] ~/testdir
user@server # mv file1 file2
[ server 2022-04-08 15:35:31 ] ~/testdir
user@server # ls -l
total 4
drwxr-xr-x 2 user user 6 Apr 8 15:27 apple
-rw-r--r-- 1 user user 23 Apr 8 15:24 file2
[ server 2022-04-08 15:35:32 ] ~/testdir
user@server # cat file2
Hello, My name is Song
- mv 명령어로 파일 및 디렉토리의 이름을 변경할 수 있습니다
[ server 2022-04-08 15:46:56 ] ~/testdir
user@server # ls -l
total 4
drwxr-xr-x 2 user user 6 Apr 8 15:27 apple
-r--r--r-- 1 user user 23 Apr 8 15:24 file2
[ server 2022-04-08 15:46:58 ] ~/testdir
user@server # mv file2 file3
[ server 2022-04-08 15:47:02 ] ~/testdir
user@server # ls -l
total 4
drwxr-xr-x 2 user user 6 Apr 8 15:27 apple
-r--r--r-- 1 user user 23 Apr 8 15:24 file3
- mv 명령어로 디렉토리를 이동할 때 절대 경로와 상대 경로를 사용할 수 있습니다
[ server 2022-04-08 16:00:43 ] ~/testdir
user@server # ls -l
total 4
drwxr-xr-x 3 user user 20 Apr 8 15:58 apple
-r--r--r-- 1 user user 23 Apr 8 15:24 file3
### 절대경로로 이동한 apple의 하위 디렉토리들
[ server 2022-04-08 16:00:44 ] ~/testdir
user@server # cd apple/apple1/apple2/
[ server 2022-04-08 16:00:49 ] ~/testdir/apple/apple1/apple2
user@server # ls -l
total 0
### 상대경로로 이동한 apple2의 상위 디렉토리들
[ server 2022-04-08 16:00:52 ] ~/testdir/apple/apple1/apple2
user@server # cd ../../../
[ server 2022-04-08 16:00:55 ] ~/testdir
user@server # ls -l
total 4
drwxr-xr-x 3 user user 20 Apr 8 15:58 apple
-r--r--r-- 1 user user 23 Apr 8 15:24 file3
- mv 명령어로 여러 개의 파일을 한 번에 이동할 수 있습니다
[ server 2022-04-08 16:07:47 ] ~/testdir
user@server # ls -l
total 0
drwxr-xr-x 3 user user 20 Apr 8 15:58 apple
-rw-r--r-- 1 user user 0 Apr 8 16:07 file1
-rw-r--r-- 1 user user 0 Apr 8 16:07 file2
-rw-r--r-- 1 user user 0 Apr 8 16:07 file3
[ server 2022-04-08 16:07:52 ] ~/testdir
user@server # mv file1 file2 file3 ./apple/.
[ server 2022-04-08 16:08:02 ] ~/testdir
user@server # ls -l
total 0
drwxr-xr-x 3 user user 59 Apr 8 16:08 apple
[ server 2022-04-08 16:08:04 ] ~/testdir
user@server # cd apple/
[ server 2022-04-08 16:08:06 ] ~/testdir/apple
user@server # ls -l
total 0
drwxr-xr-x 3 user user 20 Apr 8 15:58 apple1
-rw-r--r-- 1 user user 0 Apr 8 16:07 file1
-rw-r--r-- 1 user user 0 Apr 8 16:07 file2
-rw-r--r-- 1 user user 0 Apr 8 16:07 file3
- 와일드카드 기호를 사용하여 파일을 이동할 수 있습니다
### file1~3의 3개의 파일의 이동하기 전 위치 입니다. 아래예시는 * 사용시, ? 사용시의 예 입니다.
[ server 2022-04-08 16:10:27 ] ~/testdir
user@server # ls -l
total 0
drwxr-xr-x 2 user user 6 Apr 8 16:10 apple
-rw-r--r-- 1 user user 0 Apr 8 16:07 file1
-rw-r--r-- 1 user user 0 Apr 8 16:07 file2
-rw-r--r-- 1 user user 0 Apr 8 16:07 file3
### *의 표시는 0개 이상의 문자를 대체 합니다
[ server 2022-04-08 16:11:09 ] ~/testdir
user@server # mv f* ./apple/
[ server 2022-04-08 16:11:19 ] ~/testdir
user@server # cd apple/
[ server 2022-04-08 16:11:20 ] ~/testdir/apple
user@server # ls -l
total 0
-rw-r--r-- 1 user user 0 Apr 8 16:07 file1
-rw-r--r-- 1 user user 0 Apr 8 16:07 file2
-rw-r--r-- 1 user user 0 Apr 8 16:07 file3
### ?의 표시는 1개의 문자를 대체 합니다.
[ server 2022-04-08 16:11:29 ] ~/testdir
user@server # mv file? ./apple/.
[ server 2022-04-08 16:11:19 ] ~/testdir
user@server # cd apple/
[ server 2022-04-08 16:11:20 ] ~/testdir/apple
user@server # ls -l
total 0
-rw-r--r-- 1 user user 0 Apr 8 16:07 file1
-rw-r--r-- 1 user user 0 Apr 8 16:07 file2
-rw-r--r-- 1 user user 0 Apr 8 16:07 file3
3. 리눅스 mv 명령어 옵션
번호 | 옵션 | long 옵션 | 설명 |
1 | -b | --backup | 이동할 파일이 존재하면 백업파일을 만듭니다 |
2 | -f | --force | 이동할 파일의 이름이 존재할 경우 강제로 덮어쓰기를 합니다 |
3 | -i | --interactive | 이동할 파일이 존재할 경우 사용자에게 덮어 쓰기 여부를 묻습니다 |
4 | -n | --no-clobber | 이동할 파일이 동일한 이름이 존재 할 경우 이동하지 않습니다 |
5 | - | --strip-trailing-slashes | 후행 슬러쉬(/)를 제거한 상태로 인식하여 이동합니다 |
6 | -S | --suffix=SUFFIX | 백업파일 생성시 원하는 단어를 지정합니다 |
7 | -t | --target-directory=DIRECTORY | 지정된 디렉토리로 이동 시킵니다. |
8 | -T | --no-target-directory | 지정한 대상의 파일을 월본파일로 인식해서 이동 시킵니다 |
9 | -u | --update | 파일이 변경된 경우에만 이동합니다. |
10 | -v | --verbose | 이동시에 진행 상태를 출력합니다 |
11 | -Z | --context | 대상 파일의 SELinux 보안 컨텍스트를 기본유형으로 설정합니다. |
12 | - | --help | mv 명령어의 사용법을 출력합니다 |
13 | - | --version | mv 명령어의 버전을 출력합니다 |
※ -i, -f, -n 을 동시 사용 시 마지막 하나만 지정됩니다.
※ -S, --suffix로 설정하지 않는 이상 백업의 접미사는 '~'으로 설정됩니다.
※ --backup 옵션이나 VERSION_CONTROL 환경 변수를 통해 선택할 수 있습니다
- none, off : 백업 옵션을 사용하더라도 백업을 사용하지 않습니다
- numbered, t : 번호가 생성된 백업 파일을 만듭니다
- existing, nil : 번호가 매겨진 백업이 있으면 '~'으로 설정이 됩니다.
- simple, never: 항상 기본 설정으로 설정됩니다.
4. 리눅스 mv 명령어 옵션 사용법
- mv -b 옵션 사용법
[ server 2022-04-08 16:59:47 ] ~/testdir
user@server # ll
total 8
drwxr-xr-x 3 user user 38 Apr 8 16:53 apple
-rw-r--r-- 1 user user 17 Apr 8 16:15 file1
-rw-r--r-- 1 user user 23 Apr 8 16:20 file2
[ server 2022-04-08 16:59:47 ] ~/testdir
user@server # cat file1
Nice to meet you
[ server 2022-04-08 16:59:49 ] ~/testdir
user@server # cat file2
Hello, my name is Song
[ server 2022-04-08 16:59:51 ] ~/testdir
user@server # mv -b file1 file2
[ server 2022-04-08 17:00:10 ] ~/testdir
user@server # ls -l
total 8
drwxr-xr-x 3 user user 38 Apr 8 16:53 apple
-rw-r--r-- 1 user user 17 Apr 8 16:15 file2
-rw-r--r-- 1 user user 23 Apr 8 16:20 file2~
[ server 2022-04-08 17:00:12 ] ~/testdir
user@server # cat file2
Nice to meet you
[ server 2022-04-08 17:01:36 ] ~/testdir
user@server # cat file2~
Hello, my name is Song
※ -b 옵션 사용으로 file1은 file2가 되고 기존의 file2는 file2~로 백업됩니다. -S 옵션을 사용하지 않는 한 기본 '~'기호로 백업이 됩니다.
- mv -f 옵션 사용법
[ server 2022-04-08 17:03:20 ] ~/testdir
user@server # ls -l
total 8
drwxr-xr-x 3 user user 38 Apr 8 16:53 apple
-rw-r--r-- 1 user user 17 Apr 8 16:15 file2
-rw-r--r-- 1 user user 23 Apr 8 16:20 file2~
[ server 2022-04-08 17:03:20 ] ~/testdir
user@server # cat file2
Nice to meet you
[ server 2022-04-08 17:03:22 ] ~/testdir
user@server # cat file2~
Hello, my name is Song
[ server 2022-04-08 17:03:24 ] ~/testdir
user@server # mv -f file2 file2~
[ server 2022-04-08 17:03:34 ] ~/testdir
user@server # ls -l
total 4
drwxr-xr-x 3 user user 38 Apr 8 16:53 apple
-rw-r--r-- 1 user user 17 Apr 8 16:15 file2~
[ server 2022-04-08 17:03:36 ] ~/testdir
user@server # cat file2~
Nice to meet you
- mv -i 옵션 사용법
[ server 2022-04-08 17:04:58 ] ~/testdir
user@server # ls -l
total 8
drwxr-xr-x 3 user user 38 Apr 8 16:53 apple
-rw-r--r-- 1 user user 23 Apr 8 17:04 file1
-rw-r--r-- 1 user user 17 Apr 8 16:15 file2
[ server 2022-04-08 17:04:58 ] ~/testdir
user@server # mv -i file1 file2
mv: overwrite ‘file2’? n
- mv -n 옵션 사용법
[ server 2022-04-08 17:08:03 ] ~/testdir
user@server # ls -l
total 8
drwxr-xr-x 2 user user 19 Apr 8 17:06 apple
-rw-r--r-- 1 user user 23 Apr 8 17:04 file1
-rw-r--r-- 1 user user 17 Apr 8 16:15 file2
[ server 2022-04-08 17:08:06 ] ~/testdir
user@server # cat file1
Hello, my name is Song
[ server 2022-04-08 17:08:08 ] ~/testdir
user@server # cat ./apple/file1
[ server 2022-04-08 17:08:13 ] ~/testdir
user@server # mv -n file1 ./apple/file1
[ server 2022-04-08 17:08:25 ] ~/testdir
user@server # cat file1
Hello, my name is Song
[ server 2022-04-08 17:08:27 ] ~/testdir
user@server # cat ./apple/file1
- mv --strip-trailing-slashes 옵션 사용법
### apple 디렉토리에 존재 하는 파일 및 디렉토리 없음
[ server 2022-04-08 16:52:22 ] ~/testdir/apple
user@server # ls -l
total 0
### banana 디렉토리 생성
[ server 2022-04-08 16:52:23 ] ~/testdir/apple
user@server # mkdir banana
### melon 디렉토리를 banana 디렉토리로 심볼릭링크 생성
[ server 2022-04-08 16:52:28 ] ~/testdir/apple
user@server # ln -s banana melon
[ server 2022-04-08 16:52:41 ] ~/testdir/apple
user@server # ls -l
total 0
drwxr-xr-x 2 user user 6 Apr 8 16:52 banana
lrwxrwxrwx 1 user user 6 Apr 8 16:52 melon -> banana
### melon뒤에 후행 슬래쉬가 붙어 오류 출력
[ server 2022-04-08 16:52:42 ] ~/testdir/apple
user@server # mv melon/ strawberry
mv: cannot move ‘melon/’ to ‘strawberry’: Not a directory
### --strip-trailing-slashes 옵션을 사용하여 후행슬래쉬를 뺀 디렉토리로 인식
[ server 2022-04-08 16:53:17 ] ~/testdir/apple
user@server # mv --strip-trailing-slashes melon/ strawberry
[ server 2022-04-08 16:53:36 ] ~/testdir/apple
user@server # ls -l
total 0
drwxr-xr-x 2 user user 6 Apr 8 16:52 banana
lrwxrwxrwx 1 user user 6 Apr 8 16:52 strawberry -> banana
- mv -S 옵션 사용법
[ server 2022-04-08 17:10:08 ] ~/testdir
user@server # ll
total 8
drwxr-xr-x 2 user user 19 Apr 8 17:06 apple
-rw-r--r-- 1 user user 23 Apr 8 17:04 file1
-rw-r--r-- 1 user user 17 Apr 8 16:15 file2
### -S 옵션과 지정할 이름을 인수로 지정하면 됩니다.
[ server 2022-04-08 17:10:09 ] ~/testdir
user@server # mv -S test file1 file2
[ server 2022-04-08 17:10:23 ] ~/testdir
user@server # ll
total 8
drwxr-xr-x 2 user user 19 Apr 8 17:06 apple
-rw-r--r-- 1 user user 23 Apr 8 17:04 file2
-rw-r--r-- 1 user user 17 Apr 8 16:15 file2test
- mv -t 옵션 사용법
[ server 2022-04-08 17:13:46 ] ~/testdir
user@server # ls -l
total 0
drwxr-xr-x 2 user user 19 Apr 8 17:06 apple
drwxr-xr-x 2 user user 6 Apr 8 17:13 banana
### -t로 apple를 지정하면 banana가 지정한 apple 디렉토리로 이동하게 됩니다
[ server 2022-04-08 17:13:55 ] ~/testdir
user@server # mv -t apple/ banana/
[ server 2022-04-08 17:13:58 ] ~/testdir
user@server # ls -l
total 0
drwxr-xr-x 3 user user 33 Apr 8 17:13 apple
[ server 2022-04-08 17:13:59 ] ~/testdir
user@server # cd apple/
[ server 2022-04-08 17:17:19 ] ~/testdir/apple
user@server # ls -l
total 0
drwxr-xr-x 2 user user 6 Apr 8 17:13 banana
- mv -T 옵션 사용법
[ server 2022-04-08 17:24:13 ] ~/testdir
user@server # ls -l
total 4
drwxr-xr-x 2 user user 19 Apr 8 17:24 apple
drwxr-xr-x 2 user user 6 Apr 8 17:18 banana
-rw-r--r-- 1 user user 4 Apr 8 17:19 file2
[ server 2022-04-08 17:24:18 ] ~/testdir
user@server # ls apple banana
apple:
file1
banana:
[ server 2022-04-08 17:24:21 ] ~/testdir
user@server # mv -T apple/file1 banana/file1
[ server 2022-04-08 17:24:36 ] ~/testdir
user@server # ls apple banana
apple:
banana:
file1
- mv -u 옵션 사용법
[ server 2022-04-08 17:30:00 ] ~/testdir
user@server # ls -l
total 0
drwxr-xr-x 2 user user 19 Apr 8 17:29 apple
drwxr-xr-x 2 user user 19 Apr 8 17:28 banana
### 각 디렉토리 안에 내용이 다른 file1 파일이 존재
[ server 2022-04-08 17:30:01 ] ~/testdir
user@server # ls apple banana
apple:
file1
banana:
file1
[ server 2022-04-08 17:30:06 ] ~/testdir
user@server # cat ./apple/file1
good
[ server 2022-04-08 17:30:13 ] ~/testdir
user@server # cat ./banana/file1
zzz
[ server 2022-04-08 17:30:18 ] ~/testdir
user@server # mv -u apple/file1 banana/file1
### banana 디렉토리의 file1보다 apple 디렉토리의 file2가 최신
[ server 2022-04-08 17:30:32 ] ~/testdir
user@server # ls apple banana
apple:
banana:
file1
[ server 2022-04-08 17:30:40 ] ~/testdir
user@server # cat ./banana/file1
good
- mv -v 옵션 사용법
[ server 2022-04-08 17:12:35 ] ~/testdir
user@server # ll
total 8
drwxr-xr-x 2 user user 19 Apr 8 17:06 apple
-rw-r--r-- 1 user user 23 Apr 8 17:04 file2
-rw-r--r-- 1 user user 17 Apr 8 16:15 file2test
[ server 2022-04-08 17:12:35 ] ~/testdir
user@server # mv -v file2 file3
‘file2’ -> ‘file3’
- mv --help 옵션 사용법
[ server 2022-04-08 16:57:08 ] ~/testdir
user@server # mv --help
Usage: mv [OPTION]... [-T] SOURCE DEST
or: mv [OPTION]... SOURCE... DIRECTORY
or: mv [OPTION]... -t DIRECTORY SOURCE...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
Mandatory arguments to long options are mandatory for short options too.
--backup[=CONTROL] make a backup of each existing destination file
-b like --backup but does not accept an argument
-f, --force do not prompt before overwriting
-i, --interactive prompt before overwrite
-n, --no-clobber do not overwrite an existing file
If you specify more than one of -i, -f, -n, only the final one takes effect.
--strip-trailing-slashes remove any trailing slashes from each SOURCE
argument
-S, --suffix=SUFFIX override the usual backup suffix
-t, --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY
-T, --no-target-directory treat DEST as a normal file
-u, --update move only when the SOURCE file is newer
than the destination file or when the
destination file is missing
-v, --verbose explain what is being done
-Z, --context set SELinux security context of destination
file to default type
--help display this help and exit
--version output version information and exit
The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control method may be selected via the --backup option or through
the VERSION_CONTROL environment variable. Here are the values:
none, off never make backups (even if --backup is given)
numbered, t make numbered backups
existing, nil numbered if numbered backups exist, simple otherwise
simple, never always make simple backups
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'mv invocation'
- mv --version 옵션 사용법
[ server 2022-04-08 16:58:39 ] ~/testdir
user@server # mv --version
mv (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Mike Parker, David MacKenzie, and Jim Meyering.
반응형
그리드형
'IT > 리눅스 명령어' 카테고리의 다른 글
[Linux] 리눅스 서버 기본 명령어 head 명령어 옵션 사용법 총정리 (0) | 2022.04.13 |
---|---|
리눅스 rm 명령어 옵션 사용법 및 총 정리 (1) | 2022.04.12 |
[Linux] 리눅스 cat 명령어, cat 옵션 종류 총정리 (0) | 2022.04.08 |
[Linux] 리눅스 echo 명령어, echo 옵션 및 사용법 (1) | 2022.04.06 |
[Linux] 리눅스 rmdir 명령어, rmdir 옵션 및 사용법 (0) | 2022.04.04 |
댓글