- 2014.11.11 수업 내용
1. cp (copy)
파일 및 디렉토리에 관한 첫번째 명령이이기 때문에 최대한 많은 예제를 넣었다.
1) 명령어 설명
cp : 파일 및 디렉토리 복사, 이름 변경 가능
cp [-option] [source] [source] [source] .... [target]
* wild card : 모든 것을 의미한다.
-r : 디렉토리 복사, 하위디렉터리 및 파일 모두 복사
-p : 원본파일의 소유주, 그룹, 권한, 시간을 그대로 복사
최상위 / 에 backup 디렉토리 생성
# mkdir /backup/
현재 있는 /home/samadal/ 의 디렉토리 내용 확인
# ls
a
폴더 생성된 것 확인
# ls -ld /backup/
drwxr-xr-x. 2 root root 4096 2014-11-11 12:43 /backup/
/etc/inittab 파일을 /backup/ 디렉토리로 복사
# cp /etc/inittab /backup/
# ls -l /backup/
합계 4
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
login.defs 파일 복사
# cp /etc/login.defs /backup/
# ls -l /backup/
합계 8
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login.defs
grub.conf 파일 복사
# cp /boot/grub/grub.conf /backup/
전체 확인
# ls -l /backup/
합계 12
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login.defs
[실습1] - /bakcup/ 디렉터리에 있는 파일을 /home/samadal 로 복사
항상 원본 소스와 대상 디렉터리가 있는지 확인하는 습관!
# ls -l /backup/
합계 12
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login.defs
절대경로로 복사
# cp /backup/grub.conf /home/samadal/grub.conf
# ls -l /backup/
합계 12
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login.defs
# ls -l
합계 4
drwxr-xr-x. 3 root root 1024 2014-11-10 13:47 a
-rw-------. 1 root root 739 2014-11-11 12:49 grub.conf
상대경로로 복사
# cp /backup/inittab ./
# ls -l
합계 6
drwxr-xr-x. 3 root root 1024 2014-11-10 13:47 a
-rw-------. 1 root root 739 2014-11-11 12:49 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:49 inittab
이름 변경해서 복사 가능.
# cp /backup/login.defs ./login
확인
# ls -l
합계 9
drwxr-xr-x. 3 root root 1024 2014-11-10 13:47 a
-rw-------. 1 root root 739 2014-11-11 12:49 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:49 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:50 login
*
디렉토리명 뒤에 / 붙이는 습관이 없다면 디렉토리로의 복사 중 오타가 났을 경우
해당 디렉토리로 복사가 되는 것이 아닌 변경된 파일 명으로 엉뚱한 곳에 저장이 될 수도 있다.
[실습2] - saladal로 복사한 파일들을 /home/test/c/ 로 복사
원본, 상대 디렉터리 확인
# ls -l
합계 9
drwxr-xr-x. 3 root root 1024 2014-11-10 13:47 a
-rw-------. 1 root root 739 2014-11-11 12:49 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:49 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:50 login
# ls -ld /home/test/c/
drwxr-xr-x. 3 root root 1024 2014-11-10 13:50 /home/test/c/
복사 시작
# cp ./grub.conf /home/test/c/
# ls -l /home/test/c/
합계 4
drwxr-xr-x. 2 root root 1024 2014-11-10 13:50 d
-rw-------. 1 root root 739 2014-11-11 13:01 grub.conf
# cp /home/samadal/inittab ../test/c/
# ls -l /home/test/c/
합계 6
drwxr-xr-x. 2 root root 1024 2014-11-10 13:50 d
-rw-------. 1 root root 739 2014-11-11 13:01 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 13:02 inittab
# cp ./login ../test/c/login.defs
# ls -l /home/test/c/
합계 9
drwxr-xr-x. 2 root root 1024 2014-11-10 13:50 d
-rw-------. 1 root root 739 2014-11-11 13:01 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 13:02 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 13:03 login.defs
[실습3] - /bakcup/의 파일들을 /home/test/c/d/ 로 복사!
- 생략
[연습문제]
/home/test/c/d/ 안에 있는 모든 내용을
/home/samadal/a/b/ 디렉터리에 복사
# ls -l /home/test/c/d/
합계 7
-rw-------. 1 root root 739 2014-11-11 13:05 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 13:06 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 13:06 login
# ls -ld /home/samadal/a/b/
drwxr-xr-x. 2 root root 1024 2014-11-10 13:47 /home/samadal/a/b/
# cp /home/test/c/d/grub.conf /home/samadal/a/b/
# ls -l /home/samadal/a/b/
합계 2
-rw-------. 1 root root 739 2014-11-11 13:14 grub.conf
# cp /home/test/c/d/inittab ./a/b/
# ls -l /home/samadal/a/b/
합계 4
-rw-------. 1 root root 739 2014-11-11 13:14 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 13:15 inittab
# cp ../test/c/d/login ./a/b/
# ls -l ./a/b/
합계 7
-rw-------. 1 root root 739 2014-11-11 13:14 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 13:15 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 13:15 login
*
복사할 대상이 많은 경우 - Wild card(*) 를 사용하면 된다.
ex)
# cp /home/test/c/d/* ./a/b/
2) cp 명령어 옵션
안되는 예)
# cp /backup/ ./
cp: omitting directory `/backup/'
* -r
안에 있는 모든 것을 복사하는 옵션
# cp -r /backup/ ./
# ls -l
합계 11
drwxr-xr-x. 3 root root 1024 2014-11-10 13:47 a
drwxr-xr-x. 2 root root 1024 2014-11-11 13:27 backup
-rw-------. 1 root root 739 2014-11-11 12:49 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:49 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:50 login
# ls -l ./backup/
합계 7
-rw-------. 1 root root 739 2014-11-11 13:27 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 13:27 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 13:27 login.defs
* -p
소유자 및 시간도 그대로 복사하는 옵션
복사를 하게 되면 복사한 계정으로 새로운 소유권이 지정되며 시간도 복사한 시간으로 변경된다.
소유권 및 시간까지 그대로 복사.
# cp -p ./.kshrc ./ksh
# ls -al ./.kshrc
-rw-r--r--. 1 samadal samadal 171 2014-10-16 01:02 .kshrc
# ls -l
-rw-r--r--. 1 samadal samadal 171 2014-10-16 01:02 ksh
-rw-r--r--. 1 root root 1816 2014-11-11 12:50 login
2. mv (move)
1) 명령어 설명
mv [source] [source] [source] [target]
파일 및 디렉토리 이동, 이름 변경 가능. 옵션 있긴 하지만 사용할일 거의 없다.
[실습1]
/backup/ 에 있는 파일을 /home/samadal/a/ 로 이동
# ls -l /backup/
합계 12
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login.defs
# ls -l ./a/
합계 2
drwxr-xr-x. 2 root root 1024 2014-11-11 13:15 b
# mv /backup/grub.conf ./a/
ls 명령으로 동시에 2개를 볼 수 있다.
# ls -l /backup/ ./a/
./a/:
합계 4
drwxr-xr-x. 2 root root 1024 2014-11-11 13:15 b
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
/backup/:
합계 8
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login.defs
...
이동 + 이름 변경
# mv /backup/login.defs ./a/login
# ls -l /backup/ ./a/
./a/:
합계 9
drwxr-xr-x. 2 root root 1024 2014-11-11 13:15 b
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login
/backup/:
합계 0
[문제]
./a/ 디렉토리에 있는 3개의 파일(grub.conf, inittab, login)을 /backup/ 디렉토리로 이동
# ls -l /backup/ ./a/
./a/:
합계 9
drwxr-xr-x. 2 root root 1024 2014-11-11 13:15 b
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login
/backup/:
합계 0
와일드카드 (*)는 조심히 써야한다.
# mv ./a/* /backup/
# ls -l /backup/ ./a/
./a/:
합 0
원본 디렉터리에 있던 /b/ 디렉터리도 함께 옮겨졌다.. *는 조심히 쓸 것!
/backup/:
합계 16
drwxr-xr-x. 2 root root 4096 2014-11-11 13:15 b
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login
mv는 옵션 없이도 디렉터리를 자유롭게 이동 가능하다.
# mv /backup/b/ ./a/
# ls -l /backup/ ./a/
./a/:
합계 2
drwxr-xr-x. 2 root root 1024 2014-11-11 13:15 b
/backup/:
합계 12
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login
# ls -l /backup/
합계 12
-rw-------. 1 root root 739 2014-11-11 12:45 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 12:44 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 12:45 login
3. mkdir (make directory)
1) 명령어 설명
디렉토리 생성
mkdir [option] [target]
-p : 하위디렉터리 생성 시 상위디렉터리 생성
ex)
# mkdir /backup/
4. rmdir (remove directory)
1) 명령어 설명
디렉토리 삭제(빈 디렉터리만 삭제)
rmdir [option] [source]
-p : 디렉터리 삭제시 상위디렉터리도 삭제(단, 빈 디렉터리만 삭제 가능)
ex)
상위 디렉터리까지 생성
# mkdir -p /a/b/c/d/e/f/g/
# ls -ld /a/b/c/d/e/f/g/
drwxr-xr-x. 2 root root 4096 2014-11-11 14:22 /a/b/c/d/e/f/g/
최상위인 / 까지 삭제 시도함
# rmdir -p /a/b/c/d/e/f/g/
rmdir: failed to remove directory `/': 장치나 자원이 동작 중
a 부터는 빈 디렉터리였기 때문에 a 부터 모두 삭제 됨
# ls -l /a/
ls: cannot access /a/: 그런 파일이나 디렉터리가 없습니다
5. rm (remove)
1) 명령어 설명
파일 및 디렉터리 삭제(삭제 시 사용자에게 물어보며 삭제)
rm [option] [source]
-f : 삭제 시 사용자에게 물어보지 않고 삭제
-r : 디렉터리 삭제 및 하위 디렉털, 파일 삭제
(단, 삭제시 사용자에게 물어보며 삭제)
ex)
# ls -l /home/test/c/d/
합계 7
-rw-------. 1 root root 739 2014-11-11 13:05 grub.conf
-rw-r--r--. 1 root root 884 2014-11-11 13:06 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 13:06 login
# rm /home/test/c/d/grub.conf
rm: remove 일반 파일 `/home/test/c/d/grub.conf'?
y 혹은 yes 를 눌러야만 삭제 됨
# rm /home/test/c/d/grub.conf
rm: remove 일반 파일 `/home/test/c/d/grub.conf'? y
# ls -l /home/test/c/d/
합계 5
-rw-r--r--. 1 root root 884 2014-11-11 13:06 inittab
-rw-r--r--. 1 root root 1816 2014-11-11 13:06 login
* 해커들이 맨 마지막에 하는 명령어 : rm -rf /
'Study > CentOS' 카테고리의 다른 글
[06] 명령어 find, shutdown, vi(1) & FTP 방화벽 설정 관련(집) (0) | 2015.03.27 |
---|---|
[05] alias, touch, head, tail, more, less, nl, |(파이프), cat, ftp, date, clock, cal (0) | 2015.03.27 |
[03] Linux 명령어 구조, 절대경로vs상대경로, pwd, cd, ls, clear (0) | 2015.03.27 |
[02] Linux의 특징 및 Prompt의 구조, Putty 설정 팁 (0) | 2015.03.27 |
[01] CentOS 6.6 설치, 주요 디렉토리 설명, swap (1) | 2015.03.27 |