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

  87K Apr 26 16:53 dmesg

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

10+0 records in

10+0 records out

10240 bytes (10 kB) copied, 0.0327468 s, 313 kB/s 

$ ls -h /tmp/test

 10K Jul 14 14:25 test 



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

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

$ head -3 test

[    0.000000] Initializing cgroup subsys cpuset

[    0.000000] Initializing cgroup subsys cpu

[    0.000000] Initializing cgroup subsys cpuacct 

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

10+0 records in

10+0 records out

10240 bytes (10 kB) copied, 0.00119335 s, 8.6 MB/s

$ head -3 test

[    0.000000] INITIALIZING CGROUP SUBSYS CPUSET

[    0.000000] INITIALIZING CGROUP SUBSYS CPU

[    0.000000] INITIALIZING CGROUP SUBSYS CPUACCT


블로그 이미지

§§

내 주머니속 작은 수첩

,