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 🙂
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Though the “best answer” was given, this site states otherwise:
Actually, it stands for ‘Copy and
Convert’ and was renamed toddonly
becauseccwas 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
Method 2
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.
Method 3
“dump data”. JCL is irrelevant.
Method 4
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.
Method 5
Definitely dd is “copy and convert”, as we have the “command line flag” conv (convert flags) with noerror, notrunc, sync, etc…
“Conv” has to mean “convert”!
dd if=<flag> of=<flag> conv=<flags> bs=<flag>
History told makes sense, the name “cc” was taken (by c compiler) therefore “copy and convert” was named dd, and later people remembered as “disk/data dump”.
It’s not POSIX, its JCL and this explains the syntax and the use of “command line flags” instead of parameters/arguments.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0