본문 바로가기
IT/리눅스 명령어

[Linux] 리눅스 mv 명령어, mv 명령어 옵션 총정리, 리눅스 기본명령어

by 꾸꾸웍스 2022. 4. 10.
반응형

[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.

 


 


 

반응형
그리드형

댓글