From owner-freebsd-questions@FreeBSD.ORG Mon Jul 7 14:05:32 2014 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 71F3A760 for ; Mon, 7 Jul 2014 14:05:32 +0000 (UTC) Received: from mx01.qsc.de (mx01.qsc.de [213.148.129.14]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 338CF2902 for ; Mon, 7 Jul 2014 14:05:31 +0000 (UTC) Received: from r56.edvax.de (port-92-195-69-249.dynamic.qsc.de [92.195.69.249]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx01.qsc.de (Postfix) with ESMTPS id E5DEA3CCD5; Mon, 7 Jul 2014 16:05:28 +0200 (CEST) Received: from r56.edvax.de (localhost [127.0.0.1]) by r56.edvax.de (8.14.5/8.14.5) with SMTP id s67E5SaI004418; Mon, 7 Jul 2014 16:05:28 +0200 (CEST) (envelope-from freebsd@edvax.de) Date: Mon, 7 Jul 2014 16:05:28 +0200 From: Polytropon To: Arthur Chance Subject: Re: The name "grep" Message-Id: <20140707160528.7ecf9855.freebsd@edvax.de> In-Reply-To: <53BA9EC0.9000201@qeng-ho.org> References: <20140707075443.d47ca06a.freebsd@edvax.de> <53BA4F77.60907@qeng-ho.org> <20140707104403.5a0694ff.freebsd@edvax.de> <53BA71A7.9040208@qeng-ho.org> <1404728392.19389.1.camel@archlinux> <53BA9EC0.9000201@qeng-ho.org> Reply-To: Polytropon Organization: EDVAX X-Mailer: Sylpheed 3.1.1 (GTK+ 2.24.5; i386-portbld-freebsd8.2) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: freebsd-questions@freebsd.org X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jul 2014 14:05:32 -0000 On Mon, 07 Jul 2014 14:21:04 +0100, Arthur Chance wrote: > On 07/07/2014 11:19, Ralf Mardorf wrote: > > On Mon, 2014-07-07 at 11:08 +0100, Arthur Chance wrote: > >> It's of historical interest, but 30+ years down the line > > > > It still matters as a mnemonic. Everybody understands that "mv" is for > > "move". But "grep"? Most of all I like "dd", reminds me of 2001's HAL, > > abcd ... hijklm ... yvz, it's negated by the filmmakers, but anyway ... > > ^^ ^^ ^^ ... obviously IBM. > > dd is probably the Unix command I hate most (even though I use it a > lot), [...] The choice of dd may not sound reasonable today, but when UNIX developed, the C compiler was _the_ essential component in order to get things running: it was the source of anything else, and it existed before anything else. So "copy & convert" couldn't be named cc, and dd was usable. Today we have ee ("easy editor") and ll (usually an alias for "ls -l" plus often other options). > [...] just as I hated the original DD directive (and all the rest of > JCL) back in the days when I had to use it. There were far better ways > of doing things even then. But not on systems that ran OS! :-) > I've always wondered what the original writer of dd was on when he > perpetrated that act of madness. There was Unix, with a relatively clear > way of doing things involving -x style options and simple file names and > then, ooh, I know what it needs, an invasive alien directive imported > from the Big Blue universe, totally unlike anything else in the system. > It really should have been > > dd [options] [ infile [ outfile ]] > > with the options controlling block sizes, conversions, etc. Yes, dd is somehow an exception. A syntax like dd [options] -i infile -o outfile would have been imaginable, but its current style dd [option=value] if=infile of=outfile summarized as dd [operands ...] in the manpage, somehow reminds me to JCL if I think of it. Allow me to make this clear: //COPYME JOB (001),ROOT,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) //COPYPROG EXEC PGM=DD //STUFF DD IF=SYS1.LINKLIB(VI),OF=USR.BIN(VI), // UNIT=5065,VOL=SER=USR001,DCB=(BLKSIZE=512,RECFM=F) //STDIN DD DUMMY //STDOUT DD SYSOUT=* //STDERR DD SYSOUT=* // Note that this is so wrong in so much more than the obvious ways. :-) There are few other exceptions, for example programs that read the list of files to be processed via stdin; cpio is such a program, if I remember correctly. -- Polytropon Magdeburg, Germany Happy FreeBSD user since 4.0 Andra moi ennepe, Mousa, ...