반응형
How to use "dd" command
파일을 변환하고 복사합니다.
연산자 | 내용 |
bs=BYTES | 한 번에 최대 BYTES bytes까지 읽고 씁니다. |
cbs=BYTES | 한 번에 BYTES bytes를 변환합니다. |
conv=CONV | 쉼표(,)로 구분된 기호 목록에 따라 파일을 변환합니다. |
count=N | N개의 입력된 블록만 복사합니다. |
ibs=BYTES | 한 번에 최대 BYTES bytes까지 읽습니다. (기본값 512) |
if=FILE | stdin 대신 파일을 읽습니다. |
iflag=FLAGS | 쉼표(,)로 구분된 기호 목록에 따라 읽습니다. |
obs=BYTES | 한 번에 최대 BYTES bytes까지 씁니다. (기본값 512) |
of=FILE | stdout 대신 파일을 씁니다. |
oflag=FLAGS | 쉼표(,)로 구분된 기호 목록에 따라 씁니다. |
seek=N | N 만큼 obs block 크기를 건너뛰고 출력을 시작합니다. |
skip=N | N 만큼 ibs block 크기를 건너뛰고 입력을 시작합니다. |
status=LEVEL | stderr에 출력 될 정보의 레벨을 지정합니다. 'none' : 오류 메시지를 제외한 모든 것을 제한합니다. 'noxfer' : 최종 전송 통계를 제한합니다. 'progress' : 주기적으로 전송 통계를 보여줍니다. |
CONV | 내용 |
ascii | EBCDIC코드를 ASCII 코드로 변환합니다. |
ebcdic | ASCII코드를 EBCDIC코드로 변환합니다. |
ibm | EBCDIC코드를 ASCII코드로, ASCII코드를 EBCDIC코드로 변환합니다. |
block | cbs단위로 변환할 때 줄 바꿈 문자를 공백으로 변환합니다. |
unblock | cbs단위로 변환할 때 공백 문자를 줄 바꿈 문자로 변환합니다. |
lcase | 대문자를 소문자로 변환합니다. |
ucase | 소문자를 대문자로 변환합니다. |
sparse | try to seek rather than write the output for NUL input blocks |
swab | 입력되는 두 byte 순서를 변경합니다. |
sync | ibs 크기와 cbs 크기가 차이가 있는 경우 NULL 문자로 대체합니다. |
excl | 출력 파일이 이미 존재하면 수행하지 않습니다. |
nocreate | 출력 파일이 존재해야 수행합니다. |
notrunc | 출력 파일 끝을 잘라내지 않습니다. |
noerror | 읽기 에러가 발생해도 계속 진행합니다. |
fdatasync | 작업이 완료되기 전에 물리적으로 출력 파일에 쓰기를 진행합니다. |
fsync | fdatasync와 마찬가지로 메타데이터를 작성합니다. |
FLAG | 내용 |
append | append mode (출력에만 적합; conv=notrunc 에 추천) |
direct | 데이터에 직접 입출력하는데 사용 |
directory | 디렉토리가 없으면 실패합니다. |
dsync | 데이터에 동기화된 입출력을 사용합니다. |
sync | dsync와 마찬가지이며 메타데이터도 포함합니다. |
fullblock | 입력 전체 블록을 누적합니다. (iflag에서만 사용) |
nonblock | non-blocking 입출력에 사용합니다. |
noatime | atime (access time)을 갱신하지 않습니다. |
nocache | 캐시 데이터를 버립니다. |
noctty | 제어 터미널을 파일에 할당하지 않습니다. |
nofollow | 심볼릭 링크를 따라가지 않습니다. |
count_bytes | 'count=N'을 byte count로 처리합니다. (iflag에서만 사용) |
skip_bytes | 'skip=N'을 byte count로 처리합니다. (iflag에서만 사용) |
seek_bytes | 'seek=N'을 byte count로 처리합니다. (oflag에서만 사용) |
사용 예시
▶ /var/log/dmesg 파일을 /tmp/test/test로 최대 1024byte로 읽기와 쓰기를 10개 블록으로 나눠 진행합니다.
# dmesg 파일 용량 확인
$> ls -lh /var/log/dmesg
# 폴더 생성
$> mkdir /tmp/test
# /var/log/dmesg파일을 /tmp/test/test로 블록 복사
$>dd if=/var/log/dmesg of=/tmp/test/test bs=1024 count=10
# /tmp/test/test 파일 용량 확인
$> ls -lh /tmp/test/test
▶ /var/log/dmesg에서 블록 복사 된 /tmp/test/test의 파일의 내용을 대문자로 변환하여 덮어 씌우기
# 기존 /temp/test/test 내용 중 첫 3줄 확인
$> head -3 /tmp/test/test
# /var/log/dmesg파일을 /tmp/test/test로 블록 복사 (소문자를 대문자로 변환하여 복사)
$> dd if=/var/log/dmesg of=/tmp/test/test bs=1024 count=10 conv=ucase
# 치환 된 /temp/test/test 내용 중 첫 3줄 확인
$> head -3 /tmp/test/test
반응형
'개발 창고 > Server' 카테고리의 다른 글
[Linux] How to use some log file (0) | 2023.10.29 |
---|---|
[Linux] How to use "lastlog" command (0) | 2023.10.29 |
[Linux] How to use commands related to file properties (0) | 2023.10.28 |
[Linux] How to use "chkconfig" command (0) | 2023.10.27 |
[Linux] How to use "chmod" command (0) | 2023.10.27 |