54

I'm using dd to copy an image onto a USB. But what does dd stand for?

I understand its use, but not what the name dd actually means, or is an acronym for.
It doesn't even say in the man page.

Volker Siegel
  • 13,065
  • 5
  • 49
  • 65
john smith
  • 3,033

5 Answers5

55

The syntax was inspired by the DD (data definition) statement of OS/360 JCL. Source:GNU

More Reading Here

Mitch
  • 107,631
  • 4
    The chapter on the DD statement begins on page 74 of the PDF. – hobbs Jul 08 '15 at 01:16
  • 2
    An IBM knowledge base article supports data definition as the original name of the statement in JCL. – Michael Martin-Smucker Jul 08 '15 at 04:33
  • 3
    While a DD statement is documented in the above mentioned PDF, it seems conceptually totally unrelated to the unix command of the same name, so I doubt this is the correct answer for the OP's question. – Axel Jul 08 '15 at 14:20
  • 1
    @Axel Maybe you didn't notice that this answer has actual references from the official documentation of dd that state that? – Bakuriu Jul 08 '15 at 17:59
  • Just to make @Bakuriu's comment abundantly clear: the "Source: GNU" link in the answer contains this (verbatim): dd accepts the following operands, whose syntax was inspired by the DD (data definition) statement of OS/360 JCL. I think that confirms that this is the correct answer. – Floris Jul 08 '15 at 22:22
  • 1
    @Bakuriu, @Floris: dd predates GNU by some years. It might be correct that it's named after OS/360 JCL, but how come everybody thinks GNU invented the whole unix toolbox? – Axel Jul 08 '15 at 23:27
  • @Mitch: while the DD command in JCL may have very loosely inspired the dd program in Unix/Linux, functionally dd is closer to the old IEBGENER utility. (*blink*) And after a quick Google search I see that IEBGENER is still around is z/OS. I learned a͏b̧o̢ut ̷t̸hi͘s p̡rogr͏am bàck ͏i҉n th͘e ̷1̨970's҉ ̨wḩe̸n̷ I͡ wa͏s͜ ̕i̧n̵ ̨colle̷ge;͡ s̟͇̺̫̗͠ͅw̻͎ę̹̹͕̗͍̤ͅȩt͏̪̺̮ ҉͍̖Ct̨̼̱̻̭̼ͅh̰u̠̝͈̯͍͍͘l̶̬̙̬h̲̥͓ú̺̜͖͙̰,̘̞̻̲ ̤͈̲w̠i҉͈̠̟l͢l̠ ̛t̤̼̭͇̰͚h̰̟̲̼͍ͅe̶͕̘̼̣ͅ ͏̮̲m̖a̡̖̭̤d̦̩͙̠͍͓̳̀ṇ͎̼͍͍ͅe̢̗̠̺̭̤̭s̠̳̙̞̮s͕ ̥͕͎͖͙̺ne̳̜͈̥̣̝v̗̫ḛ͕̤̩̗̗̖͜r͏͚̻͕ ̧̪ḛ̺̞͕̯̘n͖̖̣d̹͍̮?̞̹̣͎̝?͚̹̮̟̼!̵͎!͚̬͙̥̱͎͠?̮͍̜̥̲͡?̰̀ :-) – Bob Jarvis - Слава Україні Jul 09 '15 at 11:12
  • 3
    Dennis Ritchie says the name of dd comes from JCL: https://groups.google.com/d/msg/alt.folklore.computers/HAWoZ8g-xYk/HDUVxwTVLKAJ – Ross Ridge Jul 09 '15 at 15:04
  • 5
    Why not quote the relevant things in the answer? – Cascabel Jul 10 '15 at 01:53
27

There are many theories. I recall in Unix v7 (when dd first appeared) the man page said it meant disk dump (or was it data dump?) since it was frequently used as a disk backup/restore utility. However, an archive of the v7 man page mentions no etymology nor meaning. Possibly I heard it from someone at Bell Labs since I had occasional access in the early 1980s.

Other theories are:

  • data destroyer
  • data destructor
  • disk destroyer
  • delete data
  • duplicate data
  • originally for Copy and Convert, but was renamed because the C compiler already used cc (man dd from Unix-V7 on PDP-11)
wallyk
  • 784
  • 2
    The last (CC was taken) is what I was taught in a UNIX (AIX) class at IBM. – JDługosz Jul 08 '15 at 07:28
  • 3
    Disk Dump is the acronym I have always heard people use and I vaguely remember it being featured in an old man page though couldn't recall which OS I saw it in. So I think this answer is probably right. – Vality Jul 08 '15 at 10:03
  • 3
    I heard it's name is "direct data" because of its nature to directly access data form disks/particions, ect... – Daywalker Jul 08 '15 at 13:56
6

dd stands for Data Description.

Katu
  • 3,593
  • 26
  • 42
4

dd = "Disc Dump".

This utility comes from the original UNIX System operational environment where it was common to replicate secondary memory (mass storage devices in a "Virtual Memory" operating system). dd can do this, bit for bit, byte for byte, sector for sector, track for track, etc. It can also flip bits, convert EBCDIC to ASCII, change block sizes and do pretty much any other binary operation you'd want/need to move/convert/recover storage data. Storage devices (all) in those days were much slower, less dense and far less reliable than today. We had to replace/repair "Random Access Magnetic Storage Devices", (e.g. disk drives, floppy and hard, magnetic cylinders, etc.) all the time.

In the event of a head crash, or other catastrophic storage device failure, "dd" was (and still is) one of my favorite utilities for extracting what data I could to a new device. Once the new device was installed, I could use fsck (file system check) and fsdb (file system debugger) to recover/repair some of the damaged file system and maybe extract some data.

This was also our first rudimentary backup system. The application process (dd), can operate as "super user" and read/write directly through the I/O subsystem (kernel) via character (raw) or block device driver [entry points], bypassing file system (kernel) yet completely replicating the file system construct to the new device. dd (like every other UNIX core utility) also has the ability to read from the standard input and write to the standard output allowing for it to be used for other things in a shell script :-) ....

3

Always thought it stood for 'disk dupe' (duplicate disk) Think it was in SCO Unix Sys V version

nippur
  • 39