hd와 od를 서로 대체할 수 있나요?

hd와 od를 서로 대체할 수 있나요?

hdod다 바이너리 콘텐츠에 대한 덤프 뷰어입니다. hd어디에서나 사용할 수 있나요 od? 아니면 그 반대로도 사용할 수 있나요?

답변1

hdhexdump -Con의 동의어이다FreeBSD그리고 일부 Linux 배포판에서는.hexdump 출신이다BSD 일;od 출신이다시간의 새벽. 오직od 그건POSIX에 의해 표준화됨. 이것단일 UNIX 기본 사항왜 또는 od선호되는지 토론하십시오 .hdxd

이러한 명령은 매우 유사한 작업을 수행합니다. 즉, 8진수, 10진수 또는 16진수 표기법을 사용하여 이진 파일의 텍스트 표현을 표시합니다. 둘 사이에는 본질적인 차이가 없습니다.

출력 형식을 제어할 수 있는 다양한 옵션이 있으며 일부 형식 지정은 하나의 명령이나 다른 명령으로만 수행할 수 있습니다. 특히, 바이너리의 내용을 한눈에 이해하기 위해 hd문자 그대로 인쇄 가능한 문자를 표시하는 열이 오른쪽에 있는 출력 형식이 마음에 듭니다 od.

$ od /bin/sh | head -n 2                # od default: octal, 2-byte words
0000000 042577 043114 000402 000001 000000 000000 000000 000000
0000020 000002 000076 000001 000000 170020 000101 000000 000000

$ od -Ax -t x1 /bin/sh | head -n 2      # od showing bytes in hexadecimal
000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
000010 02 00 3e 00 01 00 00 00 10 f0 41 00 00 00 00 00

$ hd /bin/sh | head -n 2                # hd default output: nice
00000000  7f 45 4c 46 02 01 01 00  00 00 00 00 00 00 00 00  |.ELF............|
00000010  02 00 3e 00 01 00 00 00  10 f0 41 00 00 00 00 00  |..>.......A.....|

답변2

실제로 od16진수/8진수/10진수 및 인쇄 가능한 문자를 표시할 수 있습니다.

$ od -Ax -tx1z /bin/sh | head -n2
000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00  >.ELF............<
000010 03 00 3e 00 01 00 00 00 32 4e 00 00 00 00 00 00  >..>.....2N......<

나는 주요 차이점이 단지 역사적이라고 생각합니다. 일부 버전은 hd컬러로 출력할 수도 있습니다.

관련 정보