[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: PATCH: relpath
From: |
Pádraig Brady |
Subject: |
Re: PATCH: relpath |
Date: |
Mon, 14 May 2012 14:00:06 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20110816 Thunderbird/6.0 |
On 05/14/2012 01:39 PM, Peng Yu wrote:
> On Mon, May 14, 2012 at 3:33 AM, Pádraig Brady <address@hidden> wrote:
>> On 05/13/2012 04:27 AM, Peng Yu wrote:
>>>> `--relative-base=BASE'
>>>> Only output relative names when both the `--relative-to' and processed
>>>> FILEs are descendants of BASE. Otherwise output the absolute file
>>>> name.
>>>> Note this option honors the @option{-m} and @option{-e} options
>>>> pertaining to file existence.
>>>
>>> '--relative-to' and '--relative-base' are too long. Would you please
>>> add a one-letter shortcut, such as -t and -b?
>>
>> Well short options are a bit of a trade off.
>>
>> -t or -b would detract from the readability of a command
>> using them and thus would be useful just to save typing.
>> These days though there are other aids to both memory
>> and typing, like shell tab completion and
>> editor auto completion.
>
> I original suggested adding "relpath". I don't agree to bury this
> under realpath. Having realpath for relpath is already awkward and
> inconvenient. I don't think that it is wise having even long option
> names to make it even more inconvenient.
>
> I think that some names in coreutils is not good. This is just one
> instance and should corrected.
>
>> Also a factor is the frequency of use.
>> ls for example is a command used very often,
>> so can benefit from some short options.
>> I see realpath being used less interactively,
>> and more in scripts where readability is more important.
>
> You can't tell for others how frequent they will use it. Just a like,
> a rare disease is rare for a common person. But for persons who have
> the disease it is 100%.
>
> Bottom line, as a convention, for each long name option, there should
> be a short name option, unless there are more than 26x2=52 options, in
> which case the command is too large and should be broken into multiple
> commands.
There are similar medicines for many diseases.
Here is a function you can put in your scripts or shell startup file,
to provide the interface you desired from a relpath command.
relpath() { realpath --relative-to="$2" "$1"; }
cheers,
Pádraig.