James Gosling used this idiomatic  JCL command (see loop body) in something or other, and Brian and I borrowed it (with attribution) for the bundle command in our book.

% cat /usr/local/plan9/bin/bundle

#!/bin/sh

echo '# To unbundle, run this file'

for i

do

echo "echo $i"

echo "sed 's/.//' >$i <<'//GO.SYSIN DD $i'"

sed "s/^/-/" $i

echo "//GO.SYSIN DD $i"

done

% 


-rob


On Mon, Sep 16, 2024 at 3:31 PM Henry Bent <henry.r.bent@gmail.com> wrote:
On Mon, 16 Sept 2024 at 00:11, Adam Thornton <athornton@gmail.com> wrote:
You know, this is a place that might actually be able to provide a definitive answer to me.  A brief web search found me asking the same question in 1995.

When I were a wee lad, I was told `dd` was short for `do DEBE`, which, while obviously referencing a well-known movie about a Northern Texas sports team and their most enthusiastic fan, also referred to the mainframe software whose name was an acronym for `Does Everything But Eat` and whose function was to copy data across sources with very different blocking and representation conventions...which is kinda what `dd` does.

Can anyone here confirm or deny that origin for the utility's name?


I looked through a broad swath of dd source files and man pages from v5 to System III and SVR4, the BSD SCCS tree, various commercial UNIXes, modern BSDs, and modern Linux but none of them have any sort of explanation of the name.  I figured I'd at least find something!

It is the case that many places refer to the command's function as "convert and copy," so I wonder if it's some sort of play on the fact that the expected name of the command might be "cc".

-Henry