coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: basename BSD compatibility and filter mode


From: Pádraig Brady
Subject: Re: basename BSD compatibility and filter mode
Date: Sat, 03 Mar 2012 21:00:50 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20110816 Thunderbird/6.0

On 03/03/2012 07:58 PM, Jérémy Compostella wrote:
>> On 03/03/2012 02:10 PM, Jérémy Compostella wrote:
>>> All,
>>>
>>> I'm interesting in implementing these features:
>>>
>>> 1. basename BSD options and behavior compatibility:
>>>
>>> Add the following options:
>>> -s, --suffix: specify the suffix
>>> -a, --multiple: every argument is treated as a string as if basename
>>> were invoked with just one argument.
>>
>> cool
>>
>>> Moreover:
>>> - with more than two arguments basename acts as if -a was specified.
>>
>> That would introduce an inconsistency if basename was run with 2 filenames.
>> So I think you must make -a explicit.
> I agree it looks a bit inconsistent but it's part of the BSD
> behavior. Without that we lose a part of the BSD behavior
> compatibility. So, are you sure I should discard this behavior ?

I just logged onto an OS X box there and you're right:

$ printf "%s\n" 1/1 2/2 | xargs basename
1

$ printf "%s\n" 1/1 2/2 3/3| xargs basename
1
2
3

However I think it's dangerous to do that.
If I was writing a script I would probably test with
1 or 3 or more arguments. But the script would then fail if
given 2 args based on transient conditions.
I would not emulate that "feature".

>>> - if -s is specified, act as if -a was specified too.
>>
>> yes.
>>
>>>
>>> Arguments for this feature is convenience and BSD compatibility. Let me
>>> know if this is sufficient to provide it in GNU/coreutils.
>>>
>>> 2. basesame acts as a filter:
>>>
>>> The http://lists.gnu.org/archive/html/coreutils/2011-01/msg00086.html
>>> post convince me that maybe this feature is not relevant because there
>>> are actually other very simple ways to achieve this.
>>>
>>> What do you think?
>>
>> Right. If basename is not taking from stding then
>> it doesn't need the -z option to split on \0 I think,
>> since xargs will do that for us:
>>
>> find | xargs -r0 basename -a
> 
> Eric Blake said:
>> It's been brought up before, and the consensus has always been that if
>> someone would write the patches, it would be worthwhile.  We do need
>> support for a -0 or some other way to do NUL-terminated filtering,
>> though.
> which conflict with the idea that this feature is not really worth. I'm
> a bit confused now ...

Yes, I agreed with Eric that -0 was useful,
but on consideration if not processing stdin,
then I don't think it's of use.

cheers,
Pádraig.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]