คำตอบ:
hd
เป็นคำพ้องความหมายสำหรับhexdump -C
บนFreeBSDและในลีนุกซ์บางรุ่น hexdump
มาจากวัน BSD ; od
อยู่ห่างจากรุ่งอรุณของเวลา เพียง แต่od
เป็นมาตรฐานโดย POSIX เหตุผลเดี่ยวยูนิกซ์กล่าวถึงเหตุผลที่od
ได้รับการคัดเลือกในการตั้งค่าหรือhd
xd
คำสั่งเหล่านี้ทำสิ่งที่คล้ายกันมาก: แสดงการแสดงข้อความของไฟล์ไบนารีโดยใช้สัญกรณ์ฐานแปดฐานสิบหรือฐานสิบหก ไม่มีความแตกต่างพื้นฐานระหว่างทั้งสอง
พวกเขามีตัวเลือกมากมายในการควบคุมรูปแบบเอาต์พุตและบางรูปแบบสามารถทำได้ด้วยคำสั่งเดียวหรือคำสั่งอื่น โดยเฉพาะอย่างยิ่งเมื่อต้องการดูภาพรวมของสิ่งที่อยู่ในไฟล์ไบนารีฉันชอบ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.....|
042577
18 บิตเช่น 9/4 ไบต์?
123
เป็นตัวเลขที่แสดงในฐาน 10 (ฐานสิบ) ในขณะที่0123
หมายความว่าหมายเลขนั้นจะแสดงในฐาน 8 (ฐานแปด) 0123
คือ 83 0x123
จะอยู่ในฐาน 16 (เลขฐานสิบหก) เช่น 291 นี่คือ ไม่เกี่ยวข้องกับod
รูปแบบเอาต์พุต
ที่จริงod
สามารถแสดงทั้งตัวอักษร hex / oct / dec และตัวพิมพ์ที่พิมพ์ได้:
$ 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
ยังสามารถแสดงสีได้
od
ไม่รองรับz
ส่วนต่อท้ายใน-tx1z
hd
ที่แทนหนึ่ง อย่างไรก็ตามมีประโยชน์ขอขอบคุณ :)
xxd
เช่นกัน! : D