42

I know very well what the command does, but man dd, info dd tell me: 'Convert and copy a file', as does GNU Coreutils.

Google says its an abbreviation of everything between medicine and bad webchat slang; except someone saying it means 'data destroyer', something used in PC forensics - I'd be horrified if my dd destroyed my data!

Any insight? :-)


Update: Of course I had to check the jargon file:

The Unix dd(1) was designed with a weird, distinctly non-Unixy keyword option syntax reminiscent of IBM System/360 JCL (which had an elaborate DD ‘Dataset Definition’ specification for I/O devices)

Still sounds pretty ambiguous, but then it says:

though the command filled a need, the interface design was clearly a prank.

Heh :-)

  • 6
    dd is particularly good at destroying data if you aren't careful. "Data Destroyer" is not really a misnomer. – LawrenceC Aug 14 '12 at 3:25
  • Cross reference: askubuntu.com/a/645765/25036 (2015-07-08) under What does the command name “dd” stand for? – Graham Perrin Apr 2 '17 at 11:39
28

Wikipedia (dd) asserts it was named after IBM JCL command DD which stands for Data Definition. I always thought it would mean data duplicate, though.

  • 11
    It also says It is jokingly said to stand for "disk destroyer", "data destroyer", or "delete data" - cross referencing this with the Jargon file clicks a switch, I believe this is the answer we're looking for! – invert Feb 2 '11 at 20:49
  • 2
    I always thought it was data duplicate too. – Mikel Feb 2 '11 at 21:07
  • 3
    It was definitely Dataset Definition. Dataset was the IBM term for File. In JCL you needed to write a DD record to define the file that you wanted to use and give a 2 character unit number code to reference in your Open statements. – Michael Dillon Feb 4 '11 at 2:44
  • 2
    Can you add a reference? – mikemaccana Apr 5 '15 at 16:49
  • 5
    On the topic of the cc/dd name: Spurious. dd was always named after JCL dd cards. -- Dennis Ritchie (alt.folklore.computers, 2004) – mr.spuratic Oct 25 '15 at 19:39
35

Though the “best answer” was given, this site states otherwise:

Actually, it stands for ‘Copy and Convert’ and was renamed to dd only because cc was reserved for the C compiler! This is the authentic information I got from the man pages of our Unix-V7 on our university PDP 11.

Original mail at comp.unix.misc(usenet): The Unix Acronym List

  • 3
    But the postings go on to say: He's not sure if it was ever actually called cc in UNIX, but he is _certain_ that the name dd comes from the jcl dd command (so does the wreched syntax). – Justin Ethier Feb 3 '11 at 15:41
  • 2
    This is proving quite an investigation. 'Copy and Convert' describe's dd's function nicely! Some systems did have cc as the 'C-Compiler', and light-bulb moment: does gcc stand for 'GNU C Compiler'? :-) Interesting. – invert Feb 3 '11 at 21:12
  • 2
    There is a very simple issue involved here. 'DD' is from IBM's JCL and 'dd' is from UNIX .. one is Upper-case, the other Lower-case where case ma.ttered... IBM didn't really have much to do with UNIX and vice-versa... and DD/dd did different things... So, to me, anything other than this is a possibility – Peter.O Feb 5 '11 at 11:13
  • @invert gcc stands for GNU Compiler Collection, but knowing GNU and their weird obsession with acronyms, it probably stands for both.. – Braden Best Dec 24 '15 at 22:17
13

"dump data". JCL is irrelevant.

  • Yes this does make sense, functionally, even if the origins say something else. – invert Feb 2 '11 at 20:48
  • 2
    Probaby a backronym. secure.wikimedia.org/wikipedia/en/wiki/Backronym – jsbillings Feb 3 '11 at 3:22
  • 2
    Disk Dump is correct. Back then it was normal to use DD to backup a hard drive partition to tape. Most of the other options were related to things that people wanted to do with tapes, such as convert EBCDIC to ASCII. – Michael Dillon Feb 4 '11 at 2:43
  • JCL is irrelevant -- that depends on the question being asked. One question is the historical origin, in which case JCL is probably relevant. Another question is the most clever and fitting backronym one can imagine for modern dd usage, in which case this answer might be more appropriate. I'm not actually sure which the OP is asking. – jw013 Oct 9 '12 at 16:58
  • 4
    It makes a great deal of sense, and is therefore almost certainly wrong. Lexicography is no task for amateurs. – TRiG Nov 15 '14 at 2:17
1

Someone was questioning whether the UNIX (and Linux) dd command actually had any relationship to the IBM JCL dd command. I would argue that it DID and that it had a direct bearing on the choice of the name, and here is the reason.

"Way back" in the eighties and before, AT&T had operational support systems, particularly billing systems, that ran on equipment other than their own research systems. In particular, things like long distance billing reports and other artifacts that needed to be transferred between mainframe computer systems and other systems had to have a mechanism.

In the UNIX way of doing things, transferring files - or any "objects" could be done a bit or a byte at a time, without regard to content or anything else. The dd command had provisions for transferring those bits and bytes, and doing things like code set conversion between EBCDIC and ASCII, copying tape backups between diverse media types, and so forth.

Today, we can do things with this fairly ancient command and perform tasks such as creating bootable media on CD, DVD, small form factor USB sticks, and who knows what next, because the tool can simply transfer information, regardless of content. The dd command, in this respect, is one of the most useful commands in the UNIX and Linux arsenal.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.