On Tue, Aug 9, 2011 at 2:36 PM, Jon Seymour <jon.seym...@gmail.com> wrote:
> On Tue, Aug 9, 2011 at 2:14 PM, Bob Proulx <b...@proulx.com> wrote:
>> Jon Seymour wrote:
>>> I always use sed for this purpose, so:
>>>
>>>    $(cd "$dir"; ls -l "$base" | sed "s/.*->//")
>>>
>>> But, with pathological linking structures, this isn't quite enough -
>>> particularly if the target of the link itself contains paths, some of
>>> which may contain links :-)
>>
>> Agreed!  Symlinks with arbitrary data, such as holding small shopping
>> lists in the target value, are so much fun.  I am more concerned that
>> arbitrary data such as "->" might exist in there more so than
>> whitespace.  That is why I usually don't use a pattern expression.
>> But I agree it is another way to go.  But it is easier to say
>> whitespace is bad in filenames than to say whitespace is bad and oh
>> yes you can't have "->" in there either.  :-)
>>
>
> Ok, I think this does it...
>
> readlink_f()
> {
> ...
> }

And I make no claims whatsoever about whether this is vulnerable to
infinite recursion!

jon.

Reply via email to