2011. 8. 7. 06:38

■ 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/zeronull 문자를 만들어내는 특별한 파일.

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

Posted by devanix