อ่าน 8 นาที
dd (ยูนิก)
dd( Data(set) Definition ) เป็นคำสั่งเชลล์สำหรับการอ่าน เขียน และแปลงข้อมูลไฟล์เดิมทีพัฒนาขึ้นสำหรับUnixแต่ได้ถูกนำไปใช้ในสภาพแวดล้อมอื่นๆ อีกมากมาย รวมถึงระบบปฏิบัติการที่คล้าย...
dd (ยูนิก)
| ดีดี | |
|---|---|
| ผู้เขียนต้นฉบับ | เคน ทอมป์สัน ( เอทีแอนด์ที เบลล์ แล็บโบราทอรีส์ ) |
| นักพัฒนา | นักพัฒนาซอฟต์แวร์โอเพนซอร์สและเชิงพาณิชย์หลายราย |
| ปล่อย | มิถุนายน พ.ศ. 2517 |
| เขียนเป็น | แผน 9: C |
| ระบบปฏิบัติการ | ยูนิก , ระบบปฏิบัติการคล้ายยูนิก , Plan 9 , Inferno , Windows |
| แพลตฟอร์ม | ข้ามแพลตฟอร์ม |
| พิมพ์ | สั่งการ |
| ใบอนุญาต | coreutils : GPLv3+แผน 9: ใบอนุญาต MIT |
| ที่เก็บข้อมูล | coreutils: git |
dd( Data(set) Definition ) เป็นคำสั่งเชลล์สำหรับการอ่าน เขียน และแปลงข้อมูลไฟล์เดิมทีพัฒนาขึ้นสำหรับUnixแต่ได้ถูกนำไปใช้ในสภาพแวดล้อมอื่นๆ อีกมากมาย รวมถึงระบบปฏิบัติการที่คล้าย Unix , Windows , Plan 9และInferno [ 1 ]
คำสั่งนี้สามารถใช้ได้หลายวัตถุประสงค์ สำหรับการดำเนินการคัดลอกที่ค่อนข้างง่าย มักจะช้ากว่าทางเลือกเฉพาะโดเมน แต่มีประสิทธิภาพดีเยี่ยมในการเขียนทับหรือตัดทอนไฟล์ ณ จุดใดก็ได้ หรือการค้นหาในไฟล์[ 2 ]
คำสั่งนี้รองรับการอ่านและเขียนไฟล์ และหาก มี ไดรเวอร์ที่รองรับการเข้าถึงแบบไฟล์ คำสั่งนี้ก็สามารถเข้าถึงอุปกรณ์ได้เช่นกัน การเข้าถึงแบบนี้มักได้รับการสนับสนุนบนระบบที่ใช้ Unix ซึ่งให้การเข้าถึงแบบไฟล์ไปยังอุปกรณ์ (เช่นหน่วยเก็บข้อมูล ) และไฟล์อุปกรณ์ พิเศษ (เช่น/dev/zeroและ/dev/random ) ดังนั้น คำสั่งนี้จึงสามารถใช้สำหรับงานต่างๆ เช่น การสำรองข้อมูลบูตเซกเตอร์ของไดรฟ์ และการดึงข้อมูลแบบสุ่มได้
คำสั่งนี้ยังสามารถรองรับการแปลงข้อมูลระหว่างการคัดลอก รวมถึง การสลับ ลำดับไบต์และการแปลงระหว่างการเข้ารหัสข้อความASCIIและEBCDIC ได้อีกด้วย [ 3 ]
ddบางครั้งเรียกกันเล่นๆ ว่า "เครื่องทำลายดิสก์" เนื่องจากความสามารถในการลบดิสก์ที่เกี่ยวข้องกับการพิมพ์ผิด[ 4 ]
ประวัติศาสตร์
ในปี พ.ศ. 2517 ddคำสั่งนี้ปรากฏเป็นส่วนหนึ่งของUnix เวอร์ชัน 5ตามที่Dennis Ritchie กล่าว ชื่อนี้เป็นการอ้างอิงถึงคำสั่ง DDที่พบในJob Control Language (JCL) ของIBM [ 5 ] [ 6 ]โดยที่DDย่อมาจากdata definition [ 7 ] [ 8 ] Douglas McIlroyได้อธิบายบริบททางวัฒนธรรมของไวยากรณ์นี้ว่า "เดิมทีมีจุดประสงค์เพื่อแปลงไฟล์ระหว่าง โลก ASCII , little-endian , byte-stream ของ คอมพิวเตอร์ DECและ โลก EBCDIC , big-endian, blocked ของIBM " [ 9 ] Eric S. Raymondเชื่อว่า "การออกแบบอินเทอร์เฟซเป็นการเล่นตลกอย่างชัดเจน" เนื่องจากไวยากรณ์ของคำสั่งนี้คล้ายกับคำสั่ง JCL มากกว่าคำสั่ง Unix อื่นๆ[ 6 ]dd
ในปี พ.ศ. 2530 ddคำสั่งนี้ได้รับการระบุไว้ใน คู่มือการพกพา X/Open ฉบับที่ 2 ของปี พ.ศ. 2530 คำ สั่ง นี้ได้รับการสืบทอดโดยIEEE Std 1003.1-2008 ( POSIX ) ซึ่งเป็นส่วนหนึ่งของข้อกำหนด UNIX เดียว [ 10 ]
ในปี พ.ศ. 2533 David MacKenzie ได้ประกาศGNU fileutils (ปัจจุบันเป็นส่วนหนึ่งของcoreutils ) ซึ่งรวมถึงddคำสั่ง[ 11 ]โดย Paul Rubin, David MacKenzie และ Stuart Kemp เป็นผู้เขียน[ 12 ]ตั้งแต่ปี พ.ศ. 2534 Jim Meyering เป็นผู้ดูแลรักษา[ 13 ]
ในปี พ.ศ. 2538 Plan 9 ฉบับที่ 2ได้รับการเผยแพร่พร้อมddคำสั่งที่มีรูปแบบตัวเลือกบรรทัดคำสั่งแบบดั้งเดิมมากกว่ารูปแบบคำสั่ง JCL [ 14 ]
นับตั้งแต่ปี 1999 เป็นต้นมาUnxUtilsได้จัดเตรียม การใช้งาน แบบเนทีฟสำหรับแพลตฟอร์มWindows [ 15 ] [ 16 ]
ใช้
อินเทอร์เฟซบรรทัดคำสั่งแตกต่างจากคำสั่งเชลล์สมัยใหม่ส่วนใหญ่อย่างมากตรงที่ตัวเลือกจะถูกจัดรูปแบบเป็น แทนที่จะเป็นไวยากรณ์ทั่วไปที่ระบุตัวเลือกด้วยเครื่องหมายขีดกลางนำหน้า เช่น, , , . option=value-x-y value--abc--def value
โดยค่าเริ่มต้นddจะอ่านข้อมูลจากอินพุตมาตรฐานและเขียนข้อมูลไปยังเอาต์พุตมาตรฐานแต่สามารถเปลี่ยนแปลงอินพุตและเอาต์พุตได้ ตัวเลือก `--input` ifระบุไฟล์อินพุต และตัวเลือก ` of--output` ระบุไฟล์เอาต์พุต
ลักษณะที่ไม่เป็นมาตรฐานนั้นddขึ้นอยู่กับระบบหรือการใช้งานพื้นฐาน ซึ่งรวมถึง:
- การเข้าถึงหน่วยความจำโดยตรง
- การจัดการสัญญาณ
- การจัดการ จุดสิ้นสุดไฟล์ (EOF) โดยเฉพาะอย่างยิ่ง เวอร์ชัน สำหรับ Windowsจะแตกต่างกัน: Cygwinใช้Ctrl+ D(ซึ่งเป็นเรื่องปกติสำหรับ Unix) และMKS Toolkitใช้+ (ซึ่งเป็นเรื่องปกติสำหรับ Windows)CtrlZ
ข้อความเอาต์พุต
เมื่อเสร็จสิ้นddจะเขียนสถิติไปยังข้อผิดพลาดมาตรฐาน รูปแบบนี้เป็นมาตรฐานใน POSIX [ 10 ] : STDERR หน้าคู่มือสำหรับ GNU dd ไม่ได้อธิบายรูปแบบนี้ แต่คู่มือ BSD อธิบายไว้ แต่ละบรรทัด "Records in" และ "Records out" แสดงจำนวนบล็อกที่ถ่ายโอนเสร็จสมบูรณ์ + จำนวนบล็อกบางส่วน เช่น เนื่องจากสื่อทางกายภาพสิ้นสุดลงก่อนที่จะอ่านบล็อกเสร็จสมบูรณ์ หรือข้อผิดพลาดทางกายภาพทำให้ไม่สามารถอ่านบล็อกได้อย่างสมบูรณ์
หากddได้รับ สัญญาณ SIGINFOขณะที่กำลังทำงานอยู่ ซึ่งโดยทั่วไปจะเกิดจากการที่ผู้ใช้กดปุ่ม+ ระบบจะบันทึกสถิติระหว่างการทำงานไปยังข้อผิดพลาดมาตรฐานและดำเนินการประมวลผลต่อไป CtrlT
ขนาดบล็อก
คำสั่งนี้ประมวลผลข้อมูลเป็นบล็อกขนาดเริ่มต้นคือ 512 (ขนาดที่กำหนดโดย POSIX และเป็นขนาดดั้งเดิมทั่วไปสำหรับฮาร์ดแวร์ดิสก์) แต่สามารถระบุได้ผ่านตัวเลือกบรรทัดคำสั่ง ตัวเลือก `--size` bsระบุขนาดสำหรับทั้งการอ่านและการเขียนข้อมูล หรืออีกทางหนึ่ง ตัวเลือก `--size` ibsระบุขนาดสำหรับการอ่านและobsการเขียนข้อมูล ตัวเลือก `--size` cbsมีผลต่อการแปลงข้อมูล
ตัวเลือกcountและskipระบุseekจำนวนบล็อก: จำนวนสูงสุดที่จะอ่าน เริ่มอ่านที่ออฟเซ็ตจากจุดเริ่มต้นของอินพุต และเริ่มเขียนที่ออฟเซ็ตจากจุดเริ่มต้นของเอาต์พุต ตามลำดับ[ 10 ] : ตัวดำเนินการ
ค่าตัวเลือกขนาดบล็อกจะถูกระบุเป็นจำนวนเต็มของไบต์ในเลขฐานสิบ โดยมีคำต่อท้ายเสริมเพื่อระบุตัวคูณ POSIX กำหนดให้มีคำต่อท้ายb(บล็อก) สำหรับ 512 และk( กิโลไบต์ ) สำหรับ 1024 [ 10 ] : ตัวดำเนินการ แต่การใช้งานจะแตกต่างกันไปตามคำต่อท้ายอื่นๆ (ฟรี) BSD ใช้mสำหรับเมบิไบต์สำหรับกิบิไบต์และอื่นๆ สำหรับหน่วยกำลังสอง ที่ใหญ่กว่า [ 17 ] GNU ใช้และ และ gอื่นๆ สำหรับหน่วยเหล่านี้ และใช้, , และสำหรับหน่วย SI [ 12 ] ตัวอย่างเช่น สำหรับ GNU ddระบุขนาดของMGkBMBGBbs=16M16 มิบेट (16,777,216 ไบต์ )และbs=3kBระบุว่า3000 ไบต์
เพื่อให้เป็นไปตามมาตรฐาน POSIX การใช้งานบางอย่างจะตีความxอักขระนี้เป็นตัวดำเนินการคูณสำหรับทั้งค่าตัวเลือกขนาดบล็อกและจำนวนนับ ตัวอย่างเช่นbs=2x80x18bจะถูกตีความว่า 2 × 80 × 18 × 512 =1,474,560 ไบต์ซึ่ง เป็นขนาดของฟลอปปี้ดิสก์ขนาด 1440 KiB [ 10 ] :ตัวดำเนินการ สำหรับการใช้งานที่ไม่รองรับคุณสมบัตินี้สามารถใช้ ไวยากรณ์เลขคณิตของเชลล์ POSIX ได้bs=$((2*80*18))b
ขนาดบล็อกมีผลต่อประสิทธิภาพ การอ่านและเขียนข้อมูลขนาดเล็กจำนวนมากมักจะช้ากว่าการอ่านและเขียนข้อมูลขนาดใหญ่จำนวนน้อยครั้ง ในทางกลับกัน บล็อกขนาดใหญ่ต้องการRAM มากขึ้น และอาจทำให้การกู้คืนข้อผิดพลาดซับซ้อนขึ้น
เมื่อใช้งานร่วมกับอุปกรณ์ที่มีขนาดบล็อกแปรผันได้ เช่น เทปไดรฟ์หรือเครือข่าย ขนาดบล็อกอาจเป็นตัวกำหนดขนาดของระเบียนเทปหรือ ขนาด ของแพ็กเก็ตเครือข่ายขึ้นอยู่กับโปรโตคอลเครือข่าย
ตัวอย่าง
ตัวอย่างด้านล่างนี้ใช้ได้กับการใช้งานหลายแบบ แต่เขียนขึ้นมาโดยเฉพาะสำหรับ GNU dd โดยทั่วไปแล้ว ความแตกต่างเพียงอย่างเดียวระหว่างการใช้งานต่างๆ คือค่าขนาดบล็อก และสามารถใช้งานได้กับหลายแพลตฟอร์มโดยใช้การแสดงออกทางคณิตศาสตร์ของเชลล์แทนการใช้คำต่อท้ายตัวคูณขนาด ตัวอย่างเช่น แทนที่จะbs=64Mใช้ ให้ใช้ หรือbs=$((64*1024*1024))bs=$((64<<20))
การถ่ายโอนข้อมูล
คำสั่งนี้สามารถทำสำเนาข้อมูลระหว่างไฟล์ อุปกรณ์ พาร์ติชัน และวอลุ่มได้ และยังสามารถแปลงข้อมูลระหว่างการถ่ายโอนตามที่ระบุผ่านตัวเลือกconv ได้อีก ด้วยในบางกรณี การถ่ายโอนข้อมูลจะเร็วกว่าด้วยcat [ 2 ]
เพื่อสร้างอิมเมจดิสก์ISO จาก แผ่น CD-ROM , DVDหรือBlu-ray : [ 18 ]
blocks=$(isosize-d2048/dev/sr0)dd if=/dev/sr0 of=isoimage.iso bs=2048 count=$blocks status=progress
วิธีการกู้คืนไดรฟ์จากไฟล์ภาพ:
dd if=system.img of=/dev/sdc bs=64M conv=noerrorเพื่อสร้างภาพของพาร์ติชั่น sdb2 โดยใช้ขนาดบล็อก 64 MiB :
dd if=/dev/sdb2 of=partition.image bs=64M conv=noerrorวิธีการโคลนพาร์ติชั่นหนึ่งไปยังอีกพาร์ติชั่นหนึ่ง:
dd if=/dev/sda2 of=/dev/sdb2 bs=64M conv=noerrorเพื่อคัดลอกไดรฟ์ ad0 ไปยัง ad1 โดยไม่สนใจข้อผิดพลาดใดๆ:
dd if=/dev/ad0 of=/dev/ad1 bs=64M conv=noerrorการปรับเปลี่ยน ณ สถานที่
คำสั่งนี้สามารถแก้ไขข้อมูลในตำแหน่งเดิมได้ ตัวอย่างเช่น คำสั่งนี้จะเขียนทับข้อมูลแรกไฟล์ขนาด 512 ไบต์ ที่มีไบต์ว่างเปล่า:
dd if=/dev/zero of=path/to/file bs=512 count=1 conv=notruncตัวเลือกนี้conv=notruncขอให้ไม่ตัดทอนไฟล์เอาต์พุต กล่าวคือ หากไฟล์เอาต์พุตมีอยู่แล้ว ให้แทนที่ไบต์ที่ระบุไว้และคงส่วนที่เหลือของไฟล์เอาต์พุตไว้เหมือนเดิม หากไม่มีตัวเลือกนี้ คำสั่งจะสร้างไฟล์เอาต์พุตที่มีความยาว 512 ไบต์
การสำรองข้อมูลและกู้คืนมาสเตอร์บูตเรคคอร์ด
ตัวอย่างข้างต้นยังสามารถใช้ในการสำรองและกู้คืนข้อมูลส่วนใดส่วนหนึ่งของอุปกรณ์ไปยังไฟล์ได้ รวมถึงมาสเตอร์บูตเรคคอร์ด ด้วย ในการทำสำเนาสองเซกเตอร์แรกของฟลอปปี้ดิสก์:
dd if=/dev/fd0 of=MBRboot.img bs=512 count=2ล้างดิสก์
ด้วยเหตุผลด้านความปลอดภัย บางครั้งจำเป็นต้องล้างข้อมูลในดิสก์ของอุปกรณ์ที่เลิกใช้แล้ว ซึ่งสามารถทำได้โดยการ "ถ่ายโอนข้อมูล" จากไฟล์พิเศษของ Unix
- ในการเขียนค่าศูนย์ลงดิสก์ ให้ใช้คำ สั่ง `.`
dd if=/dev/zero of=/dev/sda bs=16M - ในการเขียนข้อมูลแบบสุ่มลงดิสก์ ให้ใช้คำสั่ง.
dd if=/dev/urandom of=/dev/sda bs=16M
เมื่อเปรียบเทียบกับตัวอย่างการแก้ไขข้อมูลข้างต้น ตัวเลือกการ แปลง notruncไม่จำเป็น เนื่องจากไม่มีผลเมื่อไฟล์เอาต์พุตเป็นอุปกรณ์บล็อก[ 19 ]
ตัวเลือกนี้bs=16Mทำให้ dd สามารถอ่านและเขียนได้ครั้งละ16 MiB สำหรับระบบสมัยใหม่ ขนาดบล็อกที่ใหญ่กว่าอาจจะเร็วกว่า โปรดทราบว่าการเติมไดรฟ์ด้วยข้อมูลแบบสุ่มอาจใช้เวลานานกว่าการล้างไดรฟ์ เนื่องจากข้อมูลแบบสุ่มต้องสร้างโดย CPU ในขณะที่การสร้างศูนย์นั้นเร็วมาก บนฮาร์ดดิสก์ไดรฟ์สมัยใหม่ การล้างไดรฟ์จะทำให้ข้อมูลส่วนใหญ่ที่อยู่ในนั้นไม่สามารถกู้คืนได้ถาวร [ 20 ] อย่างไรก็ตาม สำหรับไดรฟ์ประเภทอื่น เช่น หน่วยความจำแฟลช ข้อมูลจำนวนมากอาจยังคงสามารถกู้คืนได้ด้วยการ คงอยู่ของข้อมูล
ฮาร์ดดิสก์ไดรฟ์สมัยใหม่มี คำสั่ง Secure Eraseที่ออกแบบมาเพื่อลบข้อมูลทุกส่วนที่เข้าถึงได้และเข้าถึงไม่ได้ในไดรฟ์อย่างถาวรและปลอดภัย คำสั่งนี้อาจใช้ได้กับไดรฟ์โซลิดสเตท (แฟลชไดรฟ์) บางรุ่นด้วย แต่ ณ ปี 2017 คำสั่งนี้ใช้ไม่ได้กับแฟลชไดรฟ์ USBและ หน่วยความจำแฟลช Secure Digitalเมื่อใช้งานได้ คำสั่งนี้จะเร็วกว่าและปลอดภัยกว่าการใช้ dd ใน เครื่อง Linuxสามารถเข้าถึงได้ผ่านตัวเลือก ของคำสั่งhdparm--security-erase-enhanced
โปรแกรม นี้shredมีฟังก์ชันการเขียนทับไฟล์หลายไฟล์พร้อมกัน รวมถึงการลบไฟล์แต่ละไฟล์อย่างปลอดภัยยิ่งขึ้น
การกู้คืนข้อมูล
การกู้คืนข้อมูลเกี่ยวข้องกับการอ่านข้อมูลจากไดรฟ์ที่มีบางส่วนอาจไม่สามารถเข้าถึงได้ คำสั่งนี้เหมาะสมกับงานนี้เป็นอย่างดี ด้วยคุณสมบัติการข้าม ( seek ) ที่ยืดหยุ่นและการตั้งค่าระดับต่ำอื่นๆ อย่างไรก็ตาม คำสั่งdd แบบพื้นฐาน นั้นใช้งานยาก เนื่องจากผู้ใช้ต้องอ่านข้อความแสดงข้อผิดพลาดและคำนวณพื้นที่ที่สามารถอ่านได้ด้วยตนเอง นอกจากนี้ ขนาดบล็อกเดียวก็จำกัดความละเอียดของการกู้คืน เนื่องจากต้องมีการแลกเปลี่ยนกันระหว่างการใช้บล็อกขนาดเล็กเพื่อกู้คืนข้อมูลได้มากขึ้น หรือการใช้บล็อกขนาดใหญ่เพื่อความเร็ว
โปรแกรม AC ที่เรียกว่าdd_rescue[ 21 ] ถูกเขียนขึ้นในเดือนตุลาคม พ.ศ. 2542 โดยได้ยกเลิกฟังก์ชันการแปลงของddและรองรับขนาดบล็อกสองขนาดเพื่อจัดการกับปัญหาดังกล่าว หากการอ่านโดยใช้ขนาดใหญ่ล้มเหลว ระบบจะเปลี่ยนไปใช้ขนาดที่เล็กกว่าเพื่อรวบรวมข้อมูลให้ได้มากที่สุดเท่าที่จะเป็นไปได้ นอกจากนี้ยังสามารถทำงานย้อนกลับได้อีกด้วย ในปี พ.ศ. 2546 สคริปต์ dd_rhelpถูกเขียนขึ้นเพื่อทำให้กระบวนการใช้dd_rescue เป็นไปโดยอัตโนมัติ โดยจะติดตามว่าพื้นที่ใดบ้างที่ถูกอ่านด้วยตนเอง[ 22 ]
ในปี 2547 GNU ได้เขียนยูทิลิตี้แยกต่างหากที่ไม่เกี่ยวข้องกับddddrescue เรียกว่า ddrescue ddrescueซึ่งมีอัลกอริธึมขนาดบล็อกแบบไดนามิกที่ซับซ้อนกว่าและติดตามสิ่งที่อ่านภายใน ผู้เขียนทั้งdd_rescueและdd_rhelpถือว่า ddrescue ดีกว่าการใช้งานของพวกเขา[ 23 ]เพื่อช่วยแยกแยะโปรแกรม GNU รุ่นใหม่จากสคริปต์รุ่นเก่า บางครั้งจึงใช้ชื่ออื่นสำหรับddrescue ของ GNU รวมถึงaddrescue (ชื่อบน freecode.com และ freshmeat.net), gddrescue ( ชื่อแพ็กเกจ Debian ) และgnu_ddrescue ( ชื่อแพ็กเกจ openSUSE )
ประสิทธิภาพการขับขี่แบบมาตรฐาน
เพื่อทำการทดสอบประสิทธิภาพการทำงานของไดรฟ์และวิเคราะห์ประสิทธิภาพการอ่านและเขียนข้อมูลแบบต่อเนื่อง (และโดยปกติจะเป็นแบบเธรดเดียว) สำหรับบล็อกขนาด 1024 ไบต์:
- เขียนผลงานการแสดง:
dd if=/dev/zero bs=1024 count=1000000 of=1GB_file_to_write - อ่านผลการแสดง:
dd if=1GB_file_to_read of=/dev/null bs=1024
สร้างไฟล์ที่มีข้อมูลแบบสุ่ม
วิธีการสร้างไฟล์ที่มีข้อมูลสุ่ม 100 ไบต์โดยใช้ไดรเวอร์สุ่ม:
dd if=/dev/urandom of=myrandom bs=100 count=1แปลงไฟล์เป็นตัวพิมพ์ใหญ่
วิธีการแปลงไฟล์เป็นตัวพิมพ์ใหญ่:
dd if=filename of=filename1 conv=ucase,notruncผลตอบรับความคืบหน้า
เมื่อได้รับการร้องขอ คำสั่งจะรายงานความคืบหน้า เมื่อได้รับสัญญาณUSR1 ( INFOบนระบบ BSD) จะเขียนจำนวนบล็อกที่ถ่ายโอนไปยังข้อผิดพลาดมาตรฐาน
สคริปต์ bash ต่อไปนี้จะร้องขอความคืบหน้าทุกๆอีก 10 วินาทีการถ่ายโอนจะเสร็จสมบูรณ์ ข้อความPIDย่อมาจากตัวระบุโปรเซสของคำสั่ง dd
ในขณะที่กำลังฆ่า PID ของ USR1 อยู่ให้รอ10 วินาทีแล้วจึงเสร็จสิ้นGNU dd เวอร์ชันใหม่กว่า รองรับตัวเลือกstatus=progressที่เปิดใช้งานการตอบรับสถานะเป็นระยะ[ 24 ]
ส้อม
dcfldd
dcflddเป็น เวอร์ชันที่พัฒนาต่อ ยอด มา จาก GNU ddโดย Nick Harbour ซึ่งในขณะนั้นทำงานให้กับ ห้องปฏิบัติการนิติวิทยาศาสตร์คอมพิวเตอร์ของกระทรวงกลาโหมสหรัฐฯ[ 25 ] [ 26 ] [ 27 ]dd เมื่อ เปรียบเทียบกับdcflddอนุญาตให้มีไฟล์เอาต์พุตมากกว่าหนึ่งไฟล์ รองรับการคำนวณ checksum หลายรายการพร้อมกัน มีโหมดการตรวจสอบสำหรับการจับคู่ไฟล์ และสามารถแสดงความคืบหน้าเป็นเปอร์เซ็นต์ของการดำเนินการได้ ณ เดือนกุมภาพันธ์ 2026 เวอร์ชันล่าสุดคือ 1.9.3 จากเดือนมิถุนายน 2025 [ 28 ]
dc3dd
dc3ddเป็นการแยกสาขาของ GNU dd จาก ศูนย์อาชญากรรมไซเบอร์ของกระทรวงกลาโหมสหรัฐฯ(DC3) อาจมองได้ว่าเป็นการต่อยอดจาก dcfldd โดยมีเป้าหมายที่ระบุไว้คือการอัปเดตทุกครั้งที่มีการอัปเดต GNU upstream ณ เดือนมิถุนายน 2023 เวอร์ชันล่าสุดคือ 7.3.1 จากเดือนเมษายน 2023 [ 29 ]
ดูเพิ่มเติม
- การสำรองข้อมูล – ข้อมูลที่จัดเก็บไว้ในระบบคอมพิวเตอร์
- การโคลนดิสก์ – กระบวนการคัดลอกข้อมูลทั้งหมดบนไดรฟ์จัดเก็บข้อมูลดิจิทัล
- โปรแกรมคัดลอกดิสก์ – ยูทิลิตี้ใน Mac OS
- อิมเมจดิสก์ – ไฟล์คอมพิวเตอร์ที่ประกอบด้วยเนื้อหาของอุปกรณ์จัดเก็บข้อมูล
- รายการคำสั่ง POSIX
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ dd (ยูนิก)
dd( Data(set) Definition ) เป็นคำสั่งเชลล์สำหรับการอ่าน เขียน และแปลงข้อมูลไฟล์เดิมทีพัฒนาขึ้นสำหรับUnixแต่ได้ถูกนำไปใช้ในสภาพแวดล้อมอื่นๆ อีกมากมาย รวมถึงระบบปฏิบัติการที่คล้าย...
ประวัติศาสตร์
ในปี พ.ศ. 2517 dd คำสั่งนี้ปรากฏเป็นส่วนหนึ่งของ Unix เวอร์ชัน 5 ตามที่ Dennis Ritchie กล่าว ชื่อนี้เป็นการอ้างอิงถึง คำสั่ง DD ที่พบใน Job Control Language (JCL) ของ IBM [ 5 ] [ 6 ] โดยที่ DD ย่อมาจาก data definition [ 7 ] [ 8 ] Douglas McIlroy ได้...
ใช้
อิน เทอร์เฟซบรรทัดคำสั่ง แตกต่างจากคำสั่งเชลล์สมัยใหม่ส่วนใหญ่อย่างมากตรงที่ ตัวเลือก จะถูกจัดรูปแบบเป็น แทนที่จะเป็นไวยากรณ์ทั่วไปที่ระบุตัวเลือกด้วยเครื่องหมายขีดกลางนำหน้า เช่น, , , . option = value -x -y value --abc --def value
ข้อความเอาต์พุต
เมื่อเสร็จสิ้น dd จะเขียนสถิติไปยัง ข้อผิดพลาด มาตรฐาน รูปแบบนี้เป็นมาตรฐานใน POSIX [ 10 ] : STDERR หน้าคู่มือสำหรับ GNU dd ไม่ได้อธิบายรูปแบบนี้ แต่คู่มือ BSD อธิบายไว้ แต่ละบรรทัด "Records in" และ "Records out" แสดงจำนวนบล็อกที่ถ่ายโอนเสร็จสมบูรณ์ +...