본문 바로가기

지식생활/명령어

Linux - dd 명령어 옵션 정리

dd : 블록 단위로 파일을 복사하거나 파일 변환을 할 수 있는 명령어



## 옵션 정리


bs : Bytes, 한번에 읽고 쓸 최대 바이트 크기를 지정합니다.


cbs : Bytes, 한번에 변환 작업 가능한 바이트 크기를 지정합니다.


ibs : Bytes, 한번에 읽어드리는 입력단위 바이트를 지정합니다.


count : Blocks, 지정한 블록 수 만큼 복사합니다.


conv : 기호목록에 따라 파일을 변환합니다.

- ascii : EBCDIC코드를 ASCII코드로 변환합니다.

- ebcdic : ASCII코드를 EBCDIC코드를 변환합니다.

- ibm : ASCII코드를 EBCDIC코드로 EBCDIC코드를 ASCII코드로 변환합니다.

- block : cbs 단위로 변환 할 때 줄바꿈 문자를 공백으로 변환합니다.

- unblock : cbs단위로 변환 할 때 공백문자를 줄바꿈 문자로 변환합니다.

- lcase : 영어 대문자를 소문자로 변환 합니다.

- ucase : 영어 소문자를 대문자로 변환 합니다.

- swab : 입력되는 두 바이트의 순서를 변경합니다.

- sync : ibs크기와 obs크기가 차이가 있을 경우 NULL 문자로 대체합니다.

- excl : 출력파일이 이미 존재 하면 수행하지 않습니다.

- nocreat : 출력파일이 존재해야 수행합니다.

- notrunc : 출력파일을 자르지 않고 출력합니다.

- noerror : 입력데이터를 읽을 때 에러가 발생하여도 계속 진행합니다.


if : File, 지정한 파일을 입력대상으로 설정합니다.


obs : Bytes, 한번에 작성하는 출력단위 바이트를 지정합니다.


of : File, 지정한 파일을 출력대상으로 설정합니다.


seek : N, 지정한 단위만큼 obs 크기를 건너뛰고 출력을 시작합니다.


skip : N, 지정한 단위 만큼 ibs크기를 건너뛰고 입력을 시작합니다.



## dd 명령어 사용 예


# /var/log/dmesg의 내용을 읽고 /tmp/test/test파일에 쓰는것을 1024바이트 크기로 10번 반복한다.

$ ls -lh /var/log/dmesg

$ dd if=/var/log/dmesg of=/tmp/test/test bs=1024 count=10

$ ls -h /tmp/test


# /var/log/dmesg의 내용을 읽고 /tmp/test/test파일에 쓰는것을 1024바이트 크기로 10번 반복한다.

# /tmp/test/test 파일의 내용은 대문자로 변환합니다.

$ head -3 test

$ dd if=/var/log/dmesg of=/tmp/test/test bs=1024 count=10 conv=ucase

$ head -3 test