dd 명령
용도
파일을 변환하고 복사합니다.
구문
[conv= [ ' ascii |block|ebcdic | ibm | unblock ]
InputBlocks ] [ 파일=입력 파일 ][fskip=
SkipEOFs ] [ ibs=입력 블록 크기 ] [if=
InFile ] [ obs=출력 블록 크기 ] [of==
OutFile ] [ seek=레코드 번호 ] [건너뛰기=
SkipInputBlocks ][ 스팬=예|아니오 ]입니다
dd [ 옵션=가치 ]
설명
크기를 지정할 때 바이트 단위로 지정해야 합니다. w, b 또는 k로 끝나는 숫자는 각각 2, 512 또는 1024를 지정합니다. x 또는 *(별표)로 구분되는 숫자 쌍은 곱하기를 나타냅니다. count 매개변수에는 복사될 바이트 수가 아니라 블록 수를 사용해야 합니다.
Conv=ascii 및 conv=ebcdic 플래그와 관련된 문자 집합 매핑은 상호 보완적인 연산입니다. 이들 플래그는 대부분의 워크스테이션과 키펀치에서 사용되는 ASCII 문자와 EBCDIC 문자의 서브세트 사이를 맵핑합니다.
차단, 차단 해제, ascii, ebcdic 또는 ibm 변환 중 하나를 지정하는 경우 cbs 매개변수 값을 사용합니다. unblock 또는 ascii 매개변수가 지정되면 dd 명령은 고정 길이 대 가변 길이 변환을 수행합니다. 그렇지 않으면, 가변 길이에서 고정 길이로의 변환을 수행합니다. cbs 매개변수는 고정 길이를 판별합니다.
위의 작업을 완료한 후, dd 명령은 전체 및 부분 입출력 블록의 수를 보고합니다.
- 대개 사용자는 출력 파일에 대한 쓰기 액세스만 필요합니다. 그러나 출력 파일이 직접 액세스 장치에 있지 않고 seek 플래그를 사용하는 경우 파일에 대한 읽기 액세스 권한도 필요합니다.
- Dd 명령은 conv=ascii 또는 conv=unblock 플래그가 설정된 상태에서 변환할 때만 새 줄 문자를 삽입하고, conv=ebcdic, conv=ibm 또는 conv=block 플래그가 설정된 상태에서 변환할 때만 패딩합니다.
- 파일을 테이프에 복사할 때는 가능하면 dd 명령 대신 백업, 타르 또는 cpio 명령을 사용하세요. 이들 명령은 테이프 장치에서 사용하도록 고안된 것입니다. 테이프 장치 사용에 대한 자세한 내용은 rmt 특별 파일을 참조하세요.
- Bs, ibs 및 obs 플래그로 지정된 블록 크기 값은 항상 사용 중인 미디어의 물리적 블록 크기의 배수여야 합니다.
- Conv=sync 플래그가 지정되면 dd 명령은 부분 입력 블록을 null로 채웁니다. 따라서, dd 명령은 읽는 도중에 데이터 블록(ibs 플래그에 지정된 대로)을 전부 수신하지 못하면 데이터 스트림 중간에 널(null)을 삽입합니다. 이것은 파이프에서 읽을 때도 공통적으로 발생합니다.
- bs 플래그를 그 자체로 지정하고 sync, noerror 또는 notrunc 이외의 다른 변환을 지정하지 않은 경우, 각 입력 블록의 데이터는 별도의 출력 블록으로 기록됩니다. 읽기에서 전체 블록 이하를 리턴하고 sync를 지정하지 않은 경우 출력 결과 블록 크기는 입력 블록 크기와 같게 됩니다. bs 플래그가 지정되지 않거나 sync, noerror 또는 notrunc 이외의 변환이 지정되는 경우, 입력의 끝에 도달할 때까지 입력이 처리되고 전체 크기 출력 블록으로 수집됩니다.
장치 사이에서 확장
InFile 또는 OutFile 매개변수 중 하나가 stdin 또는 stdout인 경우, 장치 사이에 dd 확장이 발생하지 않습니다.
출력 장치가 가득 찬 경우 쓰기 중에 dd가 다음 장치를 프롬프트하는 방식으로 확장이 발생합니다. 입력 장치로부터 읽는 중에 dd는 장치 끝에 도달하지 않았더라도 입력 장치에서 데이터를 완전히 읽어들였으면 다음 장치를 프롬프트합니다. 이럴 경우 'n'을 눌러 종료해야 합니다.
플래그
| 항목 | 설명 |
|---|---|
| bs=블록크기 | 입력 및 출력 블록 크기를 모두 지정하여 ibs 및 obs 플래그를 대체합니다. bs 플래그로 지정된 블록 크기 값은 사용되는 미디어의 물리적 블록 크기의 배수이어야 합니다. |
| cBS=블록 크기 | 가변 길이에서 고정 길이로, 고정 길이에서 가변 길이로 변환할 때 변환 블록 크기를 지정합니다(예: conv=block). |
| count=입력 블록 | InputBlocks 변수로 지정되는 입력 블록의 수만 복사합니다. |
| conv= 전환,.... | 하나 이상의 변환 옵션을 지정합니다. 복수
변환은 쉼표로 구분해야 합니다. 다음 리스트가 가능한
옵션을 설명합니다.
|
| 파일=입력파일 | 끝나기 전에 입력 파일의 InputFiles 변수값에 의해 지정된 파일 수를 복사합니다(입력이 자기 테이프나 유사한 장치인 경우에만 의미가 있음). |
| fskip=스킵EOF | 복사를 시작하기 전에 SkipEOFs 변수가 EOF 문자 수를 생략합니다. 이 SkipEOFs 변수는 여러 개의 자기 테이프에 위치를 지정할 때 유용합니다. |
| ibs=입력 블록 크기 | 입력 블록 크기를 지정합니다. 디폴트 값은 512바이트 또는 한 블록입니다. ibs 플래그로 지정된 블록 크기 값은 항상 사용되는 미디어의 물리적 블록 크기의 배수여야 합니다. |
| if=InFile | 입력 파일 이름을 지정합니다. 표준 입력(STDIN)이 디폴트입니다. |
| obs=출력블록 크기 | 출력 블록 크기를 지정합니다. 디폴트 값은 512바이트 또는 한 블록입니다. obs 플래그로 지정된 블록 크기 값은 항상 사용되는 미디어의 물리적 블록 크기의 배수여야 합니다. |
| of==아웃파일 | 출력 파일 이름을 지정합니다. 표준 출력(STDOUT)이 디폴트입니다. |
| seek=레코드번호 | 복사하기 전에 출력 파일의 처음부터 RecordNumber 변수에 의해 지정한 레코드를 검색합니다. |
| 건너뛰기=입력 블록 건너뛰기 | 복사를 시작하기 전에 입력 블록의 지정된 SkipInputBlocks 값을 생략합니다. |
| span=예|아니요 | 지정한 경우 여러 디바이스 간 스팬 허용yes로 지정하면 기본값으로 작동합니다no. 자세한 내용은 여러 디바이스 간 스패닝을 참조하세요. |
종료 상태
이 명령은 다음과 같은 종료값을 리턴합니다.
| 항목 | 설명 |
|---|---|
| 0 | 입력 파일이 성공적으로 복사되었습니다. |
| >0 | 오류가 발생했습니다. |
예
- ASCII 텍스트 파일을 EBCDIC으로 변환하려면 다음을
입력하십시오.이 명령은text.ascii파일을 EBCDIC 표현으로 변환하여 EBCDIC 버전을text.ebcdic파일로 내보냅니다.참고: conv=ebcdic 매개변수를 지정하면 dd 명령은 ASCII ^(곡선) 문자를 사용하지 않는 EBCDIC 문자9A 로 변환하고 ASCII ~(물결표)를 EBCDIC ^(NOT 기호)로 변환합니다.
- 가변 길이 레코드 ASCII 파일 /etc/passwd를 132바이트 고정 길이 EBCDIC 레코드의 파일로 변환하려면 다음을 입력하십시오.
- 레코드당 132바이트 EBCDIC 파일을 소문자로 된 가변 길이 ASCII 행으로 변환하려면 다음을 입력하십시오.
- 가변 길이 레코드 ASCII 파일 /etc/passwd를 IBM EBCDIC 버전의 132바이트 고정 길이 레코드 파일로 변환하려면 다음을 입력하십시오.
- 1KB 블록을 사용하는 테이프의 블록을 2KB 블록을 사용하는 다른 테이프로 복사하려면 다음을 입력하십시오.
- dd
명령을 필터로 사용하려면 다음을 입력하십시오.ls -l | dd conv=ucase이 명령은 현재 디렉토리의 긴 리스트를 대문자로 표시합니다.참고: 기본 블록 크기를 변경하여 9348 자기 테이프 장치 모델 12에 대한 dd 명령 및 cpio 명령의 성능을 향상시킬 수 있습니다. 블록 크기를 변경하려면 다음과 같은 방법으로 chdev 명령을 사용합니다:
chdev -l Device_name -a block_size=32k - 512바이트의 36개 블록을 사용하여 3.5인치 1.4MB 디스켓으로 효과적인
전송을 수행하려면 다음을 입력하십시오.
이 명령은 Filename 매개변수의 값을 한 번에 한 실린더씩 디스켓 장치에 씁니다. 다음conv=sync는 디스크에서 읽을 때와 파일 크기가 디스켓 블록 크기의 배수가 아닌 경우에 필요합니다. dd 명령에 대한 입력이 파일 대신에 파이프일 경우에는 이를 시도하지 마십시오. 이것은 대부분의 입력을 마지막 블록이 아닌 널(null)로 채웁니다.
- 720b 블록으로 설정된 블록 크기를 갖는
입력 파일의 블록을 1.44MB 디스켓으로
복사하려면 다음을 입력하십시오.dd if=testfile of=/dev/fd0 bs=720b conv=sync참고: 입력 파일이 출력 장치의 실제 크기보다 크면 다른 장치를 선택하라는 메시지가 표시됩니다.
- 32k 블록으로 설정된 블록 크기를
갖는 입력 파일의 블록을 테이프로 복사하려면
다음을 입력하십시오.dd if=inputfile of=/dev/rmt0 bs=32k conv=sync
- 테이프의 데이터 블록을 32k 블록으로 설정된
블록 크기를 갖는 현재 디렉토리의 파일로 복사하려면
다음을 입력하십시오.dd if=/dev/rmt0 of=outfile bs=32k conv=sync
- 720b로 설정된 블록 크기를 갖는 입력 파일의
블록을 1.44MB 크기 디스켓으로 복사하려면 다음을
입력하십시오.
dd if=testfile of=/dev/fd0 bs=720b conv=sync span=yes참고: 입력 파일이 출력 장치의 실제 크기보다 큰 경우 다른 장치를 선택하라는 메시지가 표시됩니다 . - 32k로 설정된 블록 크기를 갖는 입력 파일의
블록을 테이프로 복사하려면 다음을
입력하십시오.
dd if=inputfile of=/dev/rmt0 bs=32k conv=sync span=yes - 32k로 설정된 블록 크기를 갖는 테이프에서
현재 디렉토리의 파일로 데이터 블록을 복사하려면
다음을 입력하십시오.
dd if=dev/rmt0 of=outfile bs=32k conv=sync span=yes
파일
| 항목 | 설명 |
|---|---|
| /usr/bin/dd | dd 명령을 포함합니다. |