형식 -> 명령 [옵션][인자]
- 명령 : 사용자가 컴퓨터 운영체제나 응용프로그램에게 어떤 서비스를 수행하도록 요구하는 것
- 옵션 : 옵션을 사용하여 명령의 세부 기능을 선택할 수 있다. 리눅스의 기능을 풍부하게 하는 중요한 특징. "-"기호로 시작하며 영문 소문자나 대문자로 구성. 명령에 따라 어떤 옵션이 있고 그 기능이 무엇인지는 해당 명령의 사용법을 참조
- 인자 : 명령으로 전달되는 값으로 주로 파일명이나 디렉터리명
- cp [옵션][복사 할 디렉토리/파일][복사 될 디렉토리/파일]
copy의 줄임말로 파일이나 디렉토리를 복사할 뎨 사용하는 명령어
옵션 | 설명 |
---|---|
-i | 복사될 파일 이름이 이미 존재할 경우, 사용자에게 덮어 쓰기 여부를 물음 |
-b | 복사될 파일 이름이 이미 존재할 경우, 백업파일을 생성 |
-f | 복사될 파일 이름이 이미 존재할 경우, 강제로 덮어쓰기 |
-r | 하위 디렉토리까지 모두 복사 |
-a | 원본 파일의 속성, 링크 정보까지 모두 복사 |
-p | 원본파일의 소유자, 그룹, 권한 등의 정보까지 모두 복사 |
-v | 복사 진행 상태를 출력 |
-u | 최신 파일이면 복사 |
- mv [옵션][이동할 파일][이동될 위치]
move의 줄임말로 파일이나 디렉토리를 다른 위치로 변경할 때 사용되며, 파일이나 디렉토리의 이름을 변경할 때에도 사용
옵션 | 설명 |
---|---|
-b | 이동될 파일이 존재하면 백업파일을 만듦 |
-i | 이동될 파일의 이름이 이미 존재할 경우, 사용자에게 덮어쓰기여부를 물음 |
-b | 이동될 파일의 이름이 이미 존재할 경우, 백업파일을 생성 |
-f | 이동될 파일의 이름이 이미 존재할 경우, 강제로 덮어씌움 |
-n | 이동될 파일의 이름이 이미 존재할 경우, 덮어쓰기를 하지 않음 |
-r | 하위 디렉토리까지 모두 이동 |
-v | 이동 진행 상태를 출력 |
-u | 원본파일이 복사본 파일보다 최신이거나 복사본 파일에 원본파일 및 디렉토리가 없을 경우 이동하는 옵션 |
- rm [옵션][삭제할 파일/디렉토리]
remove의 약자로 리눅스에서 파일이나 디렉토리를 삭제하려고 할 때 사용하는 명령어. rm 명령어를 통해 한번 삭제한 파일이나 디렉토리는 복수할 수 없으며 또 삭제 여부를 다시한번 묻지 않고 즉시 삭제하기 때문에 사용 시 주의가 필요하다.
옵션 | 설명 |
---|---|
-f | 강제로 파일이나 디렉토리를 삭제하고 대상이 없는 경우에는 메시지를 출력하지 않음 |
-r | 디렉토리 내부의 모든 내용 삭제 |
-d | 비어있는 디렉토리들만 삭제 |
-i | 매번 삭제할때마다 사용자에게 삭제할 것인지 물음 |
-l | 3개 이상의 파일을 삭제하거나 디렉토리 내부가 비어있지 않을때만 삭제할 것인지 물음 |
-v | 삭제되는 대상의 정보를 출력 |
파일이름1 파일을 똑같이 복사하여 파일이름2 파일을 생성한다.
[root@localhost ~]# cat > bomb
Hello bomb
[root@localhost ~]# cp bomb copy
[root@localhost ~]# cat copy
Hello bomb
파일이름1 파일을 디렉토리 안에 파일이름2라는 이름으로 복사한다.
[root@localhost ~]# ll
합계 44
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 11 7월 14 14:20 bomb
-rw-r--r--. 1 root root 4 7월 13 13:14 bro
-rw-r--r--. 1 root root 11 7월 14 14:21 copy
-rw-r--r--. 1 root root 12 7월 13 13:17 file.txt
-rw-r--r--. 1 root root 0 7월 13 11:09 hello
-rw-r--r--. 1 root root 0 7월 14 14:19 hello.txt
-rw-r--r--. 1 root root 4 7월 13 12:01 hi
-rw-r--r--. 1 root root 32 7월 13 13:41 name.txt
-rw-r--r--. 1 root root 27 7월 13 13:23 newfile
-rw-r--r--. 1 root root 61 7월 13 13:53 number.txt
-rw-r--r--. 1 root root 27 7월 13 13:25 text.txt
-rw-r--r--. 1 root root 48 7월 13 13:31 welcome.txt
-rw-r--r--. 1 root root 0 7월 13 11:09 world
[root@localhost ~]# cp bomb /home/bombcopy
[root@localhost ~]# cd /home
[root@localhost home]# ll
합계 12
-rw-r--r--. 1 root root 11 7월 14 14:28 bomb
-rw-r--r--. 1 root root 11 7월 14 15:17 bombcopy
목적지로 디렉토리를 사용하게 되면 파일을 디렉토리 안에 복사한다. 한번에 여러개의 파일을 디렉토리에 복사할 수도 있다.
[root@localhost ~]# cd /home
[root@localhost home]# ll
합계 0
[root@localhost home]# cd ~
[root@localhost ~]# cp bomb /home
[root@localhost ~]# cd /home
[root@localhost home]# ll
합계 4
-rw-r--r--. 1 root root 11 7월 14 14:28 bomb
디렉토리 전체를 복사하기 위해 -r 옵션을 사용한다. 아래를 확인해보면 디렉토리 폴더(var) 자체 복사된 것을 볼 수있다.
[root@localhost ~]# cd /var
[root@localhost var]# ll
합계 8
drwxr-xr-x. 2 root root 6 4월 11 2018 adm
drwxr-xr-x. 5 root root 44 7월 12 16:22 cache
drwxr-xr-x. 2 root root 6 10월 2 2020 crash
drwxr-xr-x. 3 root root 34 7월 12 16:22 db
drwxr-xr-x. 3 root root 18 7월 12 16:22 empty
drwxr-xr-x. 2 root root 6 4월 11 2018 games
drwxr-xr-x. 2 root root 6 4월 11 2018 gopher
drwxr-xr-x. 3 root root 18 7월 12 16:22 kerberos
drwxr-xr-x. 24 root root 4096 7월 12 16:22 lib
drwxr-xr-x. 2 root root 6 4월 11 2018 local
lrwxrwxrwx. 1 root root 11 7월 12 16:21 lock -> ../run/lock
drwxr-xr-x. 7 root root 4096 7월 14 12:44 log
lrwxrwxrwx. 1 root root 10 7월 12 16:22 mail -> spool/mail
drwxr-xr-x. 2 root root 6 4월 11 2018 nis
drwxr-xr-x. 2 root root 6 4월 11 2018 opt
drwxr-xr-x. 2 root root 6 4월 11 2018 preserve
lrwxrwxrwx. 1 root root 6 7월 12 16:21 run -> ../run
drwxr-xr-x. 8 root root 87 7월 12 16:22 spool
drwxrwxrwt. 5 root root 243 7월 14 11:20 tmp
drwxr-xr-x. 2 root root 6 4월 11 2018 yp
[root@localhost var]# cp -r /var /home
[root@localhost var]# cd /home
[root@localhost home]# ll
합계 8
-rw-r--r--. 1 root root 11 7월 14 14:28 bomb
drwxr-xr-x. 19 root root 267 7월 14 15:04 var
[root@localhost home]# cd /home/var
[root@localhost var]# ll
합계 8
drwxr-xr-x. 2 root root 6 7월 14 15:04 adm
drwxr-xr-x. 5 root root 44 7월 14 15:04 cache
drwxr-xr-x. 2 root root 6 7월 14 15:04 crash
drwxr-xr-x. 3 root root 34 7월 14 15:04 db
drwxr-xr-x. 3 root root 18 7월 14 15:04 empty
drwxr-xr-x. 2 root root 6 7월 14 15:04 games
drwxr-xr-x. 2 root root 6 7월 14 15:04 gopher
drwxr-xr-x. 3 root root 18 7월 14 15:04 kerberos
drwxr-xr-x. 24 root root 4096 7월 14 15:04 lib
drwxr-xr-x. 2 root root 6 7월 14 15:04 local
lrwxrwxrwx. 1 root root 11 7월 14 15:04 lock -> ../run/lock
drwxr-xr-x. 7 root root 4096 7월 14 15:04 log
lrwxrwxrwx. 1 root root 10 7월 14 15:04 mail -> spool/mail
drwxr-xr-x. 2 root root 6 7월 14 15:04 nis
drwxr-xr-x. 2 root root 6 7월 14 15:04 opt
drwxr-xr-x. 2 root root 6 7월 14 15:04 preserve
lrwxrwxrwx. 1 root root 6 7월 14 15:04 run -> ../run
drwxr-xr-x. 8 root root 87 7월 14 15:04 spool
drwxr-xr-t. 5 root root 243 7월 14 15:04 tmp
drwxr-xr-x. 2 root root 6 7월 14 15:04 yp
파일이름 파일을 디렉토리 위치로 이동시킨다. 여러개의 파일을 한번에 디렉토리에 이동시킬 수도 있다. 아래 실습 root 디렉토리에 있던 text.txt가 /home 디렉토리로 이동한 것을 확인할 수 있다.
[root@localhost ~]# ll
합계 44
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 11 7월 14 14:20 bomb
-rw-r--r--. 1 root root 4 7월 13 13:14 bro
-rw-r--r--. 1 root root 11 7월 14 14:21 copy
-rw-r--r--. 1 root root 12 7월 13 13:17 file.txt
-rw-r--r--. 1 root root 0 7월 13 11:09 hello
-rw-r--r--. 1 root root 0 7월 14 14:19 hello.txt
-rw-r--r--. 1 root root 4 7월 13 12:01 hi
-rw-r--r--. 1 root root 32 7월 13 13:41 name.txt
-rw-r--r--. 1 root root 27 7월 13 13:23 newfile
-rw-r--r--. 1 root root 61 7월 13 13:53 number.txt
-rw-r--r--. 1 root root 27 7월 13 13:25 text.txt
-rw-r--r--. 1 root root 48 7월 13 13:31 welcome.txt
-rw-r--r--. 1 root root 0 7월 13 11:09 world
[root@localhost ~]# mv text.txt /home
[root@localhost ~]# ll
합계 40
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 11 7월 14 14:20 bomb
-rw-r--r--. 1 root root 4 7월 13 13:14 bro
-rw-r--r--. 1 root root 11 7월 14 14:21 copy
-rw-r--r--. 1 root root 12 7월 13 13:17 file.txt
-rw-r--r--. 1 root root 0 7월 13 11:09 hello
-rw-r--r--. 1 root root 0 7월 14 14:19 hello.txt
-rw-r--r--. 1 root root 4 7월 13 12:01 hi
-rw-r--r--. 1 root root 32 7월 13 13:41 name.txt
-rw-r--r--. 1 root root 27 7월 13 13:23 newfile
-rw-r--r--. 1 root root 61 7월 13 13:53 number.txt
-rw-r--r--. 1 root root 48 7월 13 13:31 welcome.txt
-rw-r--r--. 1 root root 0 7월 13 11:09 world
[root@localhost ~]# cd /home
[root@localhost home]# ll
합계 16
-rw-r--r--. 1 root root 11 7월 14 14:28 bomb
-rw-r--r--. 1 root root 11 7월 14 15:17 bombcopy
dr-xr-x---. 2 root root 4096 7월 14 15:00 root
-rw-r--r--. 1 root root 27 7월 13 13:25 text.txt
drwxr-xr-x. 19 root root 267 7월 14 15:04 var
디렉토리와 디렉토리 내의 파일 전체를 통째로 이동시킨다.
[root@localhost home]# ll
합계 16
-rw-r--r--. 1 root root 11 7월 14 14:28 bomb
-rw-r--r--. 1 root root 11 7월 14 15:17 bombcopy
dr-xr-x---. 2 root root 4096 7월 14 15:00 root
-rw-r--r--. 1 root root 27 7월 13 13:25 text.txt
drwxr-xr-x. 19 root root 267 7월 14 15:04 var
[root@localhost home]# cd ~
[root@localhost ~]# mv /lib /home
[root@localhost ~]# cd /home
[root@localhost home]# ll
합계 16
-rw-r--r--. 1 root root 11 7월 14 14:28 bomb
-rw-r--r--. 1 root root 11 7월 14 15:17 bombcopy
lrwxrwxrwx. 1 root root 7 7월 12 16:22 lib -> usr/lib
dr-xr-x---. 2 root root 4096 7월 14 15:00 root
-rw-r--r--. 1 root root 27 7월 13 13:25 text.txt
drwxr-xr-x. 19 root root 267 7월 14 15:04 var
와일드카드 기호(*)를 사용하면 설정한 파일 확장자에 따른 파일들을 모두 이동시킬 수 있다.
[root@localhost ~]# ll
합계 40
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 11 7월 14 14:20 bomb
-rw-r--r--. 1 root root 4 7월 13 13:14 bro
-rw-r--r--. 1 root root 11 7월 14 14:21 copy
-rw-r--r--. 1 root root 12 7월 13 13:17 file.txt
-rw-r--r--. 1 root root 0 7월 13 11:09 hello
-rw-r--r--. 1 root root 0 7월 14 14:19 hello.txt
-rw-r--r--. 1 root root 4 7월 13 12:01 hi
-rw-r--r--. 1 root root 32 7월 13 13:41 name.txt
-rw-r--r--. 1 root root 27 7월 13 13:23 newfile
-rw-r--r--. 1 root root 61 7월 13 13:53 number.txt
-rw-r--r--. 1 root root 48 7월 13 13:31 welcome.txt
-rw-r--r--. 1 root root 0 7월 13 11:09 world
[root@localhost ~]# mv *.txt /home
[root@localhost ~]# ll
합계 24
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 11 7월 14 14:20 bomb
-rw-r--r--. 1 root root 4 7월 13 13:14 bro
-rw-r--r--. 1 root root 11 7월 14 14:21 copy
-rw-r--r--. 1 root root 0 7월 13 11:09 hello
-rw-r--r--. 1 root root 4 7월 13 12:01 hi
-rw-r--r--. 1 root root 27 7월 13 13:23 newfile
-rw-r--r--. 1 root root 0 7월 13 11:09 world
[root@localhost ~]# cd /home
[root@localhost home]# ll
합계 32
-rw-r--r--. 1 root root 11 7월 14 14:28 bomb
-rw-r--r--. 1 root root 11 7월 14 15:17 bombcopy
-rw-r--r--. 1 root root 12 7월 13 13:17 file.txt
-rw-r--r--. 1 root root 0 7월 14 14:19 hello.txt
lrwxrwxrwx. 1 root root 7 7월 12 16:22 lib -> usr/lib
-rw-r--r--. 1 root root 32 7월 13 13:41 name.txt
-rw-r--r--. 1 root root 61 7월 13 13:53 number.txt
dr-xr-x---. 2 root root 4096 7월 14 15:00 root
-rw-r--r--. 1 root root 27 7월 13 13:25 text.txt
drwxr-xr-x. 19 root root 267 7월 14 15:04 var
-rw-r--r--. 1 root root 48 7월 13 13:31 welcome.txt
위를 보면 .txt 확장자를 가진 파일들이 /home 디렉토리로 이동한 것을 확인할 수 있다.
파일이름1 파일을 파일이름2 파일로 이름을 변경할 수 있다. 확장자가 있는 파일은 목적지 경로에도 확장자를 꼭 작성해주어야 한다.
[root@localhost ~]# ll
합계 24
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 11 7월 14 14:20 bomb
-rw-r--r--. 1 root root 4 7월 13 13:14 bro
-rw-r--r--. 1 root root 11 7월 14 14:21 copy
-rw-r--r--. 1 root root 0 7월 13 11:09 hello
-rw-r--r--. 1 root root 4 7월 13 12:01 hi
-rw-r--r--. 1 root root 27 7월 13 13:23 newfile
-rw-r--r--. 1 root root 0 7월 13 11:09 world
[root@localhost ~]# mv bro heybro
[root@localhost ~]# ll
합계 24
-rw-------. 1 root root 1214 7월 12 16:23 anaconda-ks.cfg
-rw-r--r--. 1 root root 11 7월 14 14:20 bomb
-rw-r--r--. 1 root root 11 7월 14 14:21 copy
-rw-r--r--. 1 root root 0 7월 13 11:09 hello
-rw-r--r--. 1 root root 4 7월 13 13:14 heybro
-rw-r--r--. 1 root root 4 7월 13 12:01 hi
-rw-r--r--. 1 root root 27 7월 13 13:23 newfile
-rw-r--r--. 1 root root 0 7월 13 11:09 world
디렉토리1을 디렉토리2로 이름을 변경할 수 있다.
[root@localhost ~]# cd /home
[root@localhost home]# ll
합계 32
-rw-r--r--. 1 root root 11 7월 14 14:28 bomb
-rw-r--r--. 1 root root 11 7월 14 15:17 bombcopy
-rw-r--r--. 1 root root 12 7월 13 13:17 file.txt
-rw-r--r--. 1 root root 0 7월 14 14:19 hello.txt
lrwxrwxrwx. 1 root root 7 7월 12 16:22 lib -> usr/lib
-rw-r--r--. 1 root root 32 7월 13 13:41 name.txt
-rw-r--r--. 1 root root 61 7월 13 13:53 number.txt
dr-xr-x---. 2 root root 4096 7월 14 15:00 root
-rw-r--r--. 1 root root 27 7월 13 13:25 text.txt
drwxr-xr-x. 19 root root 267 7월 14 15:04 var
-rw-r--r--. 1 root root 48 7월 13 13:31 welcome.txt
[root@localhost ~]# cd ~
[root@localhost ~]# mv /home/var /home/varcopy
[root@localhost ~]# cd /home
[root@localhost home]# ll
합계 32
-rw-r--r--. 1 root root 11 7월 14 14:28 bomb
-rw-r--r--. 1 root root 11 7월 14 15:17 bombcopy
-rw-r--r--. 1 root root 12 7월 13 13:17 file.txt
-rw-r--r--. 1 root root 0 7월 14 14:19 hello.txt
lrwxrwxrwx. 1 root root 7 7월 12 16:22 lib -> usr/lib
-rw-r--r--. 1 root root 32 7월 13 13:41 name.txt
-rw-r--r--. 1 root root 61 7월 13 13:53 number.txt
dr-xr-x---. 2 root root 4096 7월 14 15:00 root
-rw-r--r--. 1 root root 27 7월 13 13:25 text.txt
drwxr-xr-x. 19 root root 267 7월 14 15:04 varcopy
-rw-r--r--. 1 root root 48 7월 13 13:31 welcome.txt
해당 파일을 삭제한다. 여러개 한번에 삭제도 가능하다.
[root@localhost home]# ll
합계 32
-rw-r--r--. 1 root root 11 7월 14 14:28 bomb
-rw-r--r--. 1 root root 11 7월 14 15:17 bombcopy
-rw-r--r--. 1 root root 12 7월 13 13:17 file.txt
-rw-r--r--. 1 root root 0 7월 14 14:19 hello.txt
lrwxrwxrwx. 1 root root 7 7월 12 16:22 lib -> usr/lib
-rw-r--r--. 1 root root 32 7월 13 13:41 name.txt
-rw-r--r--. 1 root root 61 7월 13 13:53 number.txt
dr-xr-x---. 2 root root 4096 7월 14 15:00 root
-rw-r--r--. 1 root root 27 7월 13 13:25 text.txt
drwxr-xr-x. 19 root root 267 7월 14 15:04 varcopy
-rw-r--r--. 1 root root 48 7월 13 13:31 welcome.txt
[root@localhost home]# rm bombcopy
rm: remove 일반 파일 `bombcopy'? y
[root@localhost home]# ll
합계 28
-rw-r--r--. 1 root root 11 7월 14 14:28 bomb
-rw-r--r--. 1 root root 12 7월 13 13:17 file.txt
-rw-r--r--. 1 root root 0 7월 14 14:19 hello.txt
lrwxrwxrwx. 1 root root 7 7월 12 16:22 lib -> usr/lib
-rw-r--r--. 1 root root 32 7월 13 13:41 name.txt
-rw-r--r--. 1 root root 61 7월 13 13:53 number.txt
dr-xr-x---. 2 root root 4096 7월 14 15:00 root
-rw-r--r--. 1 root root 27 7월 13 13:25 text.txt
drwxr-xr-x. 19 root root 267 7월 14 15:04 varcopy
-rw-r--r--. 1 root root 48 7월 13 13:31 welcome.txt
와일드카드 기호(*)를 이용해서 해당되는 확장자 파일들을 한번에 삭제할 수 있다.
[root@localhost home]# ll
합계 28
-rw-r--r--. 1 root root 11 7월 14 14:28 bomb
-rw-r--r--. 1 root root 12 7월 13 13:17 file.txt
-rw-r--r--. 1 root root 0 7월 14 14:19 hello.txt
lrwxrwxrwx. 1 root root 7 7월 12 16:22 lib -> usr/lib
-rw-r--r--. 1 root root 32 7월 13 13:41 name.txt
-rw-r--r--. 1 root root 61 7월 13 13:53 number.txt
dr-xr-x---. 2 root root 4096 7월 14 15:00 root
-rw-r--r--. 1 root root 27 7월 13 13:25 text.txt
drwxr-xr-x. 19 root root 267 7월 14 15:04 varcopy
-rw-r--r--. 1 root root 48 7월 13 13:31 welcome.txt
[root@localhost home]# rm *.txt
rm: remove 일반 파일 `file.txt'? y
rm: remove 일반 빈 파일 `hello.txt'? y
rm: remove 일반 파일 `name.txt'? y
rm: remove 일반 파일 `number.txt'? y
rm: remove 일반 파일 `text.txt'? y
rm: remove 일반 파일 `welcome.txt'? y
[root@localhost home]# ll
합계 8
-rw-r--r--. 1 root root 11 7월 14 14:28 bomb
lrwxrwxrwx. 1 root root 7 7월 12 16:22 lib -> usr/lib
dr-xr-x---. 2 root root 4096 7월 14 15:00 root
drwxr-xr-x. 19 root root 267 7월 14 15:04 varcopy
디렉토리를 삭제할 때에는 꼭 -r 옵션을 넣어주어야 한다.
[root@localhost home]# ll
합계 0
drwxr-xr-x. 18 root root 256 7월 14 18:02 varcopy
[root@localhost home]# rm -r /home
rm: descend into directory `/home'? y
rm: descend into directory `/home/varcopy'? y
rm: descend into directory `/home/varcopy/lib'?
.
.
.
[root@localhost home]# ll
합계 0
아주 유익한 내용이네요!