On Mon, 21 Oct 2019 at 06:45, Abhinav Rajagopalan <abhinavrajagopalan@gmail.com> wrote:
      
Since you mentioned the word dd, the utility which serves me like none other for my frequent rewrites of images, it too has an interesting past, it seems like 'dd' was non-unixy in it's design approach, if I'm to believe the lores around, which leads me to think that this might have been another one of the many idiosyncratic naming conventions used back then. More on the dd stuff: http://www.catb.org/jargon/html/D/dd.html
 
Personally, I just like to think of it in my head as disk-disk.

I am pretty sure that "dd" derives from  the "DD" statement in IBM JCL that stands for "Data Definition"

Here's a link to practical-ish documentation about that:  https://www.ibm.com/support/knowledgecenter/zosbasics/com.ibm.zos.zjcl/zjclc_jclDDstmt.htm

On MVS, TSO, and such systems, compiled programs would be written in languages like COBOL, PL/1, FORTRAN, and such, and the programs would commonly reference input and output devices.  The programs are controlled (we could say, "scripted") by JCL code that indicate the files (possibly other devices) to be connected up.  Each file that is accessed gets its own DD line in the JCL script that indicates the various metadata about the file, such as its name, block size, storage class, how much space is allocated, literally dozens of options.

Back in the '90s my "Y2K remediation" involvement was at American Airlines; I was one of the Unix guys working alongside mainframe guys; as soon as I started seeing the JCL for their TSO batch jobs, it was pretty obvious that this was from whence derived the dd command on Unix.  The mainframe guys enthused a lot about a sorting tool with similar syntax called SyncSort that they'd use to do many of the things we'd do with cut and grep.

The Jargon File claim that dd is deprecated makes little sense; dd is THE good tool for grabbing exact chunks of data out of binary files, and I haven't seen a would-be successor.  It would be interesting to see some alternative constructed; given that it's all about dealing with pretty messy sorts of I/O work, an alternative is liable to have its messiness in different places.
-- 
When confronted by a difficult problem, solve it by reducing it to the
question, "How would the Lone Ranger handle this?"