블록(block)단위 파일복사 및 변환을 위한 dd사용법
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,277 조회
- 0 추천
- 목록
본문
블록(block)단위 파일복사 및 변환을 위한 dd사용법
한마디로 dd는 블록단위로 파일을 복사하거나 파일변환을 할 수 있는 명령어이다.
테이프(tape)로 데이터를 백업받을 때에도 흔히 사용한다.
dd의 입출력시에 사용되는 단위들의 크기는 다음과 같다.
- c : 캐릭터(Character), 1byte
- w : 워드(Word), 2bytes
- k : 키로(Kilo Bytes), 1024bytes
- b : 블록(BLOCK), 512bytes
다음은 dd로 파일복사를 수행할 때 주로 사용하는 주요옵션들이다.
bs=BYTES
한번에 BYTES씩 읽어들이고 출력한다.
ibs와 obs를 한번에 지정한 것과 같다.
(ibs=BYTES, obs=BYTES)
cbs=BYTES
한번에 BYTES씩 변환작업을 한다.
(convert BYTES bytes at a time)
conv=CONVS
콤마(,)로 분리된 단어들을 파일로 변환한다.
count=BLOCKS
입력블록(blocks)의 ibs크기만큼만 복사한다.
(copy only BLOCKS input blocks)
ibs=BYTES
입력단위로 한번에 BYTES단위로 읽어들인다.
(read BYTES bytes at a time)
if=FILE
표준입력대신 지정된 파일을 입력으로 받는다.
(read from FILE instead of stdin)
obs=BYTES
출력단위로 한번에 BYTES단위로 출력한다.
(write BYTES bytes at a time)
of=FILE
표준출력대신 지정된 파일에 출력한다.
(write to FILE instead of stdout)
seek=BLOCKS
출력시작시 지정된 BLOCKS의 단위만큼 obs크기를 건너뛰고 출력을 시작한다.
skip=BLOCKS
입력시작시 지정된 BLOCKS의 단위만큼 ibs크기를 건너뛰고 입력을 시작한다.
ascii
EBCDIC코드를 ASCII코드로 변환한다.
ebcdic
ASCII코드를 EBCDIC코드로 변환한다.
ibm
ASCII코드를 EBCDIC코드로, EBCDIC코드를 ASCII코드로 변환한다.
block
cbs로 변환작업과정에서 입력문자내에 있는 개행문자(줄바꿈문자)들을 공백문자로 변환한다.
unblock
block와는 반대로 cbs로 변환작업과정에서 입력문자내에 있는 공백문자들을 개행문자(줄바꿈문자)로 변환한다.
lcase
영문대문자를 영문소문자로 변환한다.
notrunc
“No truncation”, 즉 출력파일을 자르지 않고 출력한다.
ucase
영문소문자를 영문대문자로 변환한다.
swap
입력된 두바이트를 바꾼다.
noerror
입력데이터를 읽을 때에 에러가 발생하더라도 계속 진행한다.
sync
입력된ibs와 출력하는 obs사이에 차이가 있을 경우 그 여백공간을 NULL문자로 채운다.
다음은 dd로 파일을 복사하는 예이다.
dd는 copy명령어로 복사할 수 있는 일반파일들을 얼마든지 복사 할 수 있다.
다음 예는 /var/lib/rpm/Packages파일을 /root/data.orig출력하여 복사하는 예이다.
[root@sulinux ~]# dd if=/var/lib/rpm/Packages of=/root/data.orig 77464+0 records in 77464+0 records out 39661568 bytes (40 MB) copied, 2.65426 s, 14.9 MB/s [root@sulinux ~]# [root@sulinux ~]# ls -l /root/data.orig -rw-r--r-- 1 root root 39661568 2010-12-23 20:38 /root/data.orig [root@sulinux ~]# |
“if=”에는 복사될 원본파일의 위치를 지정한 것이고,
“of=”에는 출력되어 복사된 새로운 파일이 생성될 위치를 지정한 것이다.
그리고 복사된 후에 ls로 복사된 파일을 확인한 것이다.
관련자료
-
이전
-
다음