테스트를 할 때 파일의 크기에 관련된 테스트라면, 다양한 파일의 크기를 생성하기가 여간 귀찮은게 아니다.
파일의 내용은 상관없고 원하는 파일의 크기를 얻고싶을때 사용하면 좋다
아니면 의미없는 문자들로 채워넣고 복사 붙여넣기 를 반복해야되기때문이다.
dd명령어를 사용하면 쉽게 원하는 파일의 크기를 생성 가능하다
[root@localhost] $ dd if=/dev/zero of=test.bin bs=1K count=100
이렇게 하면 100K 크기를 갖는 aa.bin 파일이 생성된다.
dd : 블록단위로 파일을 복사하거나 파일변환을 할 수 있는 명령어
dd의 입출력시에 사용되는 단위들
c : Character, 1byte
w : Word, 2bytes
k : Kilo Bytes, 1024bytes
b : Block, 512bytes
주요옵션
bs=BYTES : 한번에 BYTES씩 읽어들이고 출력. ibs와 obs를 한번에 지정한 것과 같음
cbs=BYTES : 한번에 BYTES씩 변환작업을 함
conv=CONVS : ,로 분리된 단어들을 파일로 변환
count=BLOCKS : 입력블록의 ibs크기만큼만 복사
ibs=BYTES : 입력단위로 한번에 BYTES 단위로 읽어 들임
if=FILE : 표준입력대신 지정된 파일을 입력으로 받음
obs=BYTES : 출력단위로 한번에 BYTES 단위로 출력
of=FILE : 표준출력대신 지정된 파일에 출력
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 : 출력파일을 자르지 않고 출력
ucase : 영문 소문자를 영문대문자로 변환
swap : 입력된 두바이트를 바꿈
noerror : 입력데이터를 읽을 때에 에러가 발생하더라도 계속 진행
sync : 입력된 ibs와 출력하는 obs사이에 차이가 있을 경우 그 여백공간을 NULL 문자로 채움
부팅디스크 제작
# fdformat /dev/포멧할장치 // 포멧 # dd if=/boot/vmlinuz of=/dev/장치 // 부팅디스크 제작 |
옵션 정리 // 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 명령어 사용 ex)
# /var/log/dmesg의 내용을 읽고 /tmp/test/test파일에 쓰는것을 1024바이트 크기로 1번 반복한다.
# /var/log/dmesg의 내용을 읽고 /tmp/test/test파일에 쓰는것을 1024바이트 크기로 1번 반복한다.
# /tmp/test/test 파일의 내용은 대문자로 변환합니다.
'👨🏻💻Infra > 🐧Linux' 카테고리의 다른 글
iptables 로 DDOS 방어 하기 (0) | 2020.12.15 |
---|---|
GPT 볼륨 LVM 설정 (0) | 2020.08.18 |
APM configure 옵션 확인 (0) | 2020.05.08 |
SSH key 생성하기 (0) | 2020.04.28 |
[Linux] 대기상태 D(uninterruptible sleep) PID 죽이기 (0) | 2020.04.01 |