[PATCH] adding two new options to 'cp'

Eric Anderson anderson at centtech.com
Mon Jul 31 14:54:06 UTC 2006

On 07/31/06 09:11, Mike Meyer wrote:
> In <44CE03D2.2050803 at centtech.com>, Eric Anderson <anderson at centtech.com> typed:
>> The patch doesn't change any current behavior, nor should it be noticed 
>> by anyone not looking for it.  However, it is useful, and it does make 
>> our cp work just like the GNU cp, which eases the migration path for 
>> linux->FreeBSD users.
> Is emulating Linux behavior that good an idea? I mean, if I want
> Linux, I can download and install a copy. The joke about "Linux is for
> people who hate Windows; FreeBSD is for people who love Unix" is funny
> to me *because* it seems to capture the difference between the two
> systems so accurately. I like Unix/BSD because I feel like the
> developers respect the user, and are willing to let the user do pretty
> much anything they need to do, even if there's no obvious reason for
> them to want that. I detest Windows because the developers treat the
> the user like an idiot, and write software that does things the way
> they think the user should want to do them - and make it impossible to
> do things that the developers don't think users would ever need/want
> to do. Linux seems to have more of the latter attitude than the
> former. [And no, I don't think this patch has that attitude; I just
> don't think that "that's how linux does it" is a valid argument:
> freebsd isn't linux.]

The -a option that was included in my patch was certainly added for 
compatibility sake and ease of use.  I added it in while I was there to 
make our cp work with that same shortcut as Linux, not because I love 
linux (which I'm not that fond of), but because I would use it, and it 
would be helpful.

The -l option was a missing feature, and is what gave me the desire to 
even look at the code.  I obviously wouldn't have spent any time on it 
if I didn't need it bad enough, and I know of other users that work 
their way around it by using pipes and cpio, or pax, etc, along with 
hacking the code that uses those tools to change it from a cp command to 
their concocted version, but that isn't always an option.

The reasoning was not simply to make it like linux, that's just a side 

>> I suppose I'm just missing the reason *not* to commit such a simple and 
>> useful set of options.
> Feature bloat. Or, more verbosely, this doesn't add any new
> functionality to the system, while adding things that we would rather
> minimize.

This is a really funny reason not to.  Honestly, if you believe that, 
that you probably don't use cp at all, since dd can do it.  In fact, I 
bet you don't use sysinstall either, right?  I hate to be like this, but 
this is really kind of goofy sounding, as *tons* of tools in FreeBSD are 
there to make life easier, administration faster, etc.  I mean, you use 
emacs right?  Why not just echo the data to the mailer?

> If the functionality is all that useful, then people should have
> already created shell code to make this functionality easily available
> via the tools that already have it. If nobody needs this functionality
> often enough to have done that, is it something that we want to
> enshrine in compiled code?

To me, I read this as saying: "If it was useful, it would have already 
been done, and since it isn't, it must not be needed by anyone."


Eric Anderson        Sr. Systems Administrator        Centaur Technology
Anything that works is better than anything that doesn't.

More information about the freebsd-hackers mailing list