■ cp 명령
♧ cp명령어는 파일을 새로운 이름으로 복사하거나, 새로운 디렉토리에 동일한 파일명
(복사된 파일은 새로운 시간정보를 가짐) 으로 복사할 수 있다.
cp 명령어에는 날짜 . 시간 정보를 유지하게 하거나,
재귀적으로 복사 하거나, 기존에 동일한 파일이 있는 경우 덮어 쓸지 여부를 사용자에게 확인
하도록하는 옵션들을 가지고 있다.
▶ cp명령을 사용한 몇 가지 예제:
$ cd ; touch index.html $ mkdir /tmp/html /* cp -i : 만약 /tmp/html 디렉토리에 index.html 파일이 존재하면 사용자에게 확인 */ $ cp -i index.html /tmp/html/ /* cp -l : index.html 파일이 /tmp/html디렉토리에 동일한 이름의 파일로 하드링크 됨 */ $ rm /tmp/html/index.html $ cp -il index.html /tmp/html/ /* cp -a : /tmp/html 디렉토리에 있는 모든 파일의 소유권과 퍼미션 설정을 그대로 유지한 상태로 복사 */ $ mkdir /tmp/back $ cp -a /tmp/html /tmp/back/ /* cp -R : 디렉토리 구조를 바탕으로 지정된 디렉토리 이하 모든 파일과 디렉토리를 재귀적으로 복사 */ $ cp -R /tmp/html /tmp/back/ |
■ dd 명령
♧ dd 명령어는 데이터를 복사하는 또 다른 방법.
리눅스 시스템은 하드웨어 디바이스를 포함해 모든 것을 파일로 간주하기 때문에
dd는 매우 강력한 명령어이다.
▶ null문자로 채워진 512 바이트크기의 파일을 만듬.
$ dd if=/dev/zero of=/tmp/mynullfile count=1 1+0 레코드 들어옴 1+0 레코드 나감 512 바이트 (512 B) 복사됨, 0.000108411 초, 4.7 MB/초 |
☞ /dev/zero는 null 문자를 만들어내는 특별한 파일.
☞ dd 명령어는 /dev/zero파일을 입력파일로 하고, /tmp/mynullfile을 출력파일로 실행.
☞ count는 출력파일의 블록 개수를 설정하는 옵션이고 기본적으로 하나의 블록은 512 바이트.
☞ 결과 확인 : $ od -vt x1 /tmp/mynullfile ( 파일을 8진수로 덤프하여 출력 )
▶ 블록사이즈를 2바이트로 설정하고 10블록(20 바이트)을 복사.
$ dd if=/dev/zero of=/tmp/mynullfile count=10 bs=2 10+0 레코드 들어옴 10+0 레코드 나감 20 바이트 (20 B) 복사됨, 0.000241805 초, 82.7 kB/초 |
▶ 마스터 IDE 드라이브의 첫 번째 파티션의 복사본을 만듬
$ sudo dd if=/dev/hda1 of=/dev/hdb2 |
☞ 이 명령은 하드드라이브의 일부를 덮어쓸 수 있으므로 매우 조심스럽게 사용
▶ 마스터 IDE 드라이브의 첫 번째 파티션에 대한 압축된 백업 파일을 만듬
$ sudo umount /dev/hda1 $ sudo dd if=/dev/hda1 | gzip > bootpart.gz |
▶ 마스터 IDE 하드드라이브의 마스터 부트 레코드(MBR)를 mymbrfile파일로 복사
$ dd if=/dev/hda of=mymbrfile bs=512 count=1 |
▶ CD나 DVD로부터 ISO 이미지 복사본 생성
$ dd if=/dev/cdrom of=whatever.iso |
☞ 우분투는 /dev/cdrom뿐만 아니라 /dev/cdrw와 /dev/dvd 디바이스 파일도 생성
▶ CD 또는 DVD로부터 생성한 ISO 이미지 파일을 USB 디스크로 복사
$ sudo dd if=whatever.iso of=/dev/sdb1 |
(USB 디스크는 /dev/sdb1과 같은 장치파일로 나타날 것이다)
☞ 이 명령은 파일 내에 있는 데이터를 바이너리 복사하기 때문에
의도와 다른 결과를 가져올 수 있으므로 주의
맨 페이지(man page) 참조 : man cp, man dd, man 4 null
'컴퓨터 서적 정리 > Ubuntu Linux Toolbox' 카테고리의 다른 글
[Chap4 #07] - 파일 무결성 검증(md5sum, sha1sum) (0) | 2011.08.07 |
---|---|
[Chap4 #05] - 확장 파일시스템의 파일 속성 변경(lsattr, chattr) (1) | 2011.08.07 |
[Chap4 #03] - 파일시스템 살펴보기 (cd, pwd, pushd, popd) (0) | 2011.08.07 |
[Chap3 #02] - 리눅스 쉘 사용(3) (Redirection, pipe, xargs) (0) | 2011.08.07 |
[Chap3 #02] - 리눅스 쉘 사용(2) (watch, tail) (0) | 2011.08.06 |