DD(1)

명칭
dd - 파일의 콘버터 및 카피

서식
dd [operands ...]

해설
dd 유틸리티는, 표준 입력을 표준 출력에 카피합니다. 입력 데이터는 블록 단위 (디폴트에서는 512 바이트)로 읽고 쓰기됩니다. 입력 데이터의 블록수가 짧았던 경우는, 몇회나 읽기를 실시해, 블록수단위로 정리해 출력합니다. 종료시에, dd (은)는, 입력과 출력의 각각에 대해, 블록 단위로 처리할 수 있던 블록수와 최종 블록을 채우지 않고 우수리가 된 블록수를 표준 에러 출력에 표시합니다. 블록 단위의 변환으로 잘라 버릴 수 있었다 입력 레코드가 있었을 경우에는, 그 블록수도 표시합니다.

이하의 오퍼랜드가 이용 가능합니다:

bs=n
    입출력 양쪽 모두의 블록 사이즈를 n 바이트로 설정합니다. ibs, obs 의 지정에 우선합니다. noerror, notrunc, sync 이외의 변환 지정이 없는 경우는, 입력 블록수가 작은 경우의 통계 처리없이 입력 블록을 출력 블록에 1 블록 단위로 카피합니다.

cbs=n
    변환 레코드 사이즈를 n 바이트로 합니다. 레코드 지향의 변환이 지정되었을 경우에는 변환 레코드 사이즈가 필요합니다.

count=n
    입력 중 n 개의 블록만을 카피합니다.

files=n
    n 개의 입력 파일을 카피합니다. 이 오퍼랜드는 입력 디바이스가 테이프 때만 유효합니다.

ibs=n
    입력 블록의 사이즈를, 디폴트의 512 바이트에 대신해 n 바이트로 합니다.

if=file
    표준 입력의 대신에 file (으)로부터 입력을 실시합니다.

iseek=n
    입력 파일의 n 블럭째에 시크 합니다. skip=n (와)과 같습니다.

obs=n
    출력 블록의 사이즈를 디폴트의 512 바이트에 대신해 n 바이트로 합니다.

of=file
    표준 출력의 대신에 file 에 대해 출력을 실시합니다. notrunc 하지만 지정되지 않는 한, 보통 출력 파일에서는 마지막 1 블록 사이즈에 못 미친 데이터는 절약할 수 있습니다. 출력 파일의 최초의 부분이 시크 되어 통과하는 경우는 ( oseek 오퍼랜드 참조) 출력 파일은 거기까지 절약할 수 있습니다.

oseek=n
    출력 파일의 n 블럭째에 시크 합니다. seek=n (와)과 같습니다.

seek=n
    카피하기 전에, 출력측 파일의 개시 위치를 선두로부터 n 블록만 진행합니다. 출력이 테이프 디바이스가 아닌 경우는, lseek(2) 시스템 콜을 사용해 시크가 실행되고 진행하는 처리를 실행합니다. 만약 유저가 테이프 디바이스에 대해 읽을 액세스권 (을)를 가지고 있지 않을 때는, 테이프 디바이스에 대한다 ioctl(2) 시스템 콜을 사용합니다. 시크 처리가 파일의 최후를 넘어 행해지는 경우는, 파일의 말미로부터 지정의 시크 위치에 상당하는 부분까지 NUL 데이터의 블록을 삽입합니다.

skip=n
    카피하기 전에, 입력측 파일의 개시 위치를 선두로부터 n 블록만 진행합니다. 입력이 시크 기능을 가지고 있다면, lseek(2) 시스템 콜이 사용됩니다. 시크 기능이 없으면, 기존의 블록을 읽고 버리는 일로 지정 위치까지 진행하는 처리를 실행합니다. 입력이 파이프로부터 건네받는다 경우는, 정확하게 지정된 바이트수가 읽혀집니다. 그 이외의 디바이스에서는, 읽혀진 블록의 사이즈가 지정의 블록 사이즈에 못 미친 것이나 완전한 것의 구별을 하지 않고 , 정확하게 지정된 블록수가 읽혀집니다.

conv=value[,value ...]
    value 에 이하의 리스트로부터 1 개의 심볼을 지정해 변환을 실시합니다.

    ascii, oldascii
        레코드의 변환을 실시하기 전에 EBCDIC (으)로부터 ASCII 에의 문자 코드 변환을 실시합니다. 그 외는 unblock (와)과 같습니다. (이러한 지정에서는 cbs 도 지정되어 있는 경우는 암묵중에 unblock 도 지정된 일이 됩니다. ) ASCII 용으로 2 개의 변환 MAP가 있습니다. ascii 하 AT&T UNIX 호환의 추천하고 변환 MAP입니다. oldascii (은)는 옛 AT&T UNIX 및 pre-4.3BSD reno 시스템으로 사용되고 있던 변환 MAP입니다.

    block
        입출력의 블록 경계에 관계없이, 입력을 newline (개행) 혹은 end-of-file (파일말)로 단락지어지는 가변장 레코드열로서 취급합니다. 각 입력 레코드는 cbs 그리고 지정하는 길이의 고정장 레코드에 변환됩니다. 변환하는 레코드·사이즈보다 짧은 입력 레코드는 space (공백)로 패딩 됩니다. 변환하는 레코드·사이즈보다 긴 입력 레코드는 긴 부분을 잘라 버릴 수 있습니다. 잘라서 버림이 있던 입력 레코드수는, 만약 있으면, 카피의 종료시에 표준 에러 출력에 표시됩니다.

    ebcdic, ibm, oldebcdic, oldibm
        레코드가 변환된 다음에 ASCII (으)로부터 EBCDIC 에의 변환을 실시하는 이외는 block (와)과 같습니다. (이러한 지정에서는 cbs 도 지정되어 있는 경우는 암묵중에 block 도 지정된 일이 됩니다. ) EBCDIC 용으로 4 개의 변환 MAP가 있습니다. ebcdic 하 AT&T UNIX 호환의 추천하고 변환 MAP입니다. ibm (은)는 미묘하게 다른 변환 MAP로, AT&T UNIX 그리고 변환에 ibm (을)를 지정했을 경우에 상당합니다. oldebcdic (와)과 oldibm (은)는, 옛 AT&T UNIX 및 pre-4.3BSD reno 시스템으로 사용되고 있던 변환 MAP입니다.

    lcase
        영대 캐릭터를 소문자로 변환합니다.

    noerror
        입력에 에러가 있어도 처리를 멈추지 않게 합니다. 입력 에러가 일어났을 때는, 진단 메세지에 이어 그 때의 입력과 출력의 블록수를, 정상 동작 종료시에 표시하는 메세지와 같다 포맷으로 표준 에러 출력에 표시합니다. 만약 sync 변환도 지정되어 있었을 경우는, 입력 데이터의 쳐 없어진 것을 NUL 바이트 (블록 지향의 변환 때는 space)에 옮겨놓아, 통상의 입력 버퍼로서 처리합니다. sync 변환이 지정되어 있지 않으면, 그 입력 블록은 출력으로부터 삭제됩니다. 테이프나 파이프 이외의 입력 파일에서는, 파일·오프셋(offset)는 lseek(2) (을)를 사용해 에러의 발생한 블록 이후에도 설정됩니다.

    notrunc
        출력 파일을 절약하지 않습니다. 이것에 의해 출력 파일의 블록중에서 분명하게 dd 에 의해 기입해지는 부분 이외는 보존됩니다. notrunc (은)는 테이프에서는 서포트되지 않습니다.

    osync
        마지막 출력 블록을 출력 블록 사이즈를 채우도록(듯이) 패딩 합니다. 만약 변환 후에 입력 파일이 출력 블록 사이즈의 정수배가 아니었던 경우에, 기입할 때에 일정 사이즈의 블록이 필요한 디바이스로 사용할 때 때문에, 마지막 출력 블록이 직전의 블록과 같은 같게 합니다. 이 옵션은 bs=n 에 의한 블록 사이즈 지정과는 양립하지 않습니다.

    sparse
        하나 이상의 출력 블록이 NUL 바이트만으로부터 되는 경우, NUL 그리고 묻는 대신에, 필요한 공간만 출력 파일의 시크를 시도합니다. 결과적으로, 드문드문한 파일이 됩니다.

    swab
        입력 데이터를 2 바이트마다의 페어로 간주해, 바꿔 넣습니다. 입력이 홀수 바이트였던 경우, 마지막 데이터는 그대로 됩니다.

    sync
        각 입력 블록을 입력 버퍼·사이즈가 되도록(듯이) 패딩 합니다. 패딩에는, 블록 지향의 변환의 경우는 공백을, 그렇지 않으면 NUL 바이트를 사용합니다.

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

    unblock
        입출력의 블록 경계에 관계없이, 입력을 고정장 레코드열로서 취급합니다. 입력 레코드의 길이는 cbs 오퍼랜드로 지정합니다. 데이터의 뒤로 패딩 되고 있는 space 를 제거해 newline 를 붙입니다.

사이즈의 지정은 10 진· 8 진· 16 진의 바이트수가 기대됩니다. 숫자의 마지막에 “b”, “k”, “m”, “g”, “w” (을)를 붙였을 경우, 그 숫자에, 512, 1024 (1K), 1048576 (1M), 1073741824 (1G), integer (정수)에 격납되는 바이트수가, 각각 승. 2 개(살) 이상의 숫자를 “x” 그리고 이은 것을 적의 의미로 사용할 수 있습니다.

종료시에, dd (은)는, 제대로 혹은 부분적으로 입출력을 실시한 블록의 수, 절약할 수 있었던 입력 레코드의 수, 홀수장의 바이트 교체를 실시했다 블록의 수를 표준 에러 출력에 표시합니다. 부분적 입력 블록이란, 입력 블록 사이즈보다 적게 읽혀졌다 물건입니다. 부분 출력 블록이란, 출력 블록 사이즈보다 적게 쓰여졌다 물건입니다. 테이프 디바이스로 부분 출력 블록이 나왔을 경우는 치명적인 에러로 간주해집니다. 그 이외의 경우는, 그 블록의 나머지가 쓰여집니다. 캐릭터·디바이스로 부분 출력 블록이 나왔을 경우는 경고 메세지가 나옵니다. 절약할 수 있었던 입력 블록이란, 가변장 레코드 지향의 변환이 지정되고 입력행이 변환 레코드에 맞추기에는 너무 길까 newline 로 끝나지 않은 경우의 물건입니다.

통상, 입력 또는 변환의 혹은 양쪽 모두의 결과의 데이터는 지정된 사이즈의 출력 블록에 모아집니다. 입력 데이터가 마지막에 달했을 경우, 남아 있는 출력 데이터는 블록으로서 출력됩니다. 이것은, 마지막 출력 블록의 사이즈는 출력 블록 사이즈보다 짧아질 가능성이 있는 일을 의미합니다.

dd 하지만 SIGINFO ( stty(1) 의 인수 “status” 참조) 시그널을 받았을 경우, 그 시점의 입출력 블록수를 표준 에러 출력에 통상의 처리 완료시와 같은 포맷으로 출력합니다. dd 하지만 SIGINT 시그널을 받았을 경우, 그 시점의 입출력 블록수를 표준 에러 출력에 통상의 처리 완료시와 같은 포맷으로 출력해 dd (은)는 종료합니다.

진단

관련 항목
cp(1), mt(1), tr(1)

표준
dd 유틸리티는 p1003.2 표준의 슈퍼 세트입니다. files 오퍼랜드 및, ascii, ebcdic, ibm, oldascii, oldebcdic, oldibm 하 표준을 확장하고 있습니다.