get correct path to right hand for identical characters

I have two identical characters Joe and Moe. How can I get the path to Joe’s right hand or Moe’s right hand starting with the name “rhand”.

To use GameObject.Find(path) I need the path to each character’s rhand.

In other words how do I crawl down the hierarchy from Joe till I reach “rhand” to get:
joe/body/hip/chest/rshoulder/rforearm/relbow/rhand.

If I’m understanding correctly, you are starting at the root of “Joe”, but you want to get the Transform for “rhand”. The easiest way to achieve this, from my perspective, is a simple enumeration of the transforms until you find the one you’re looking for:

public Transform FindChildWithName(Transform parent, string name)
{
  Transform foundTransform = null;
  foreach(Transform child in parent)
  {
    if(string.Compare(child.name, name, true) == 0)
    {
      foundTransform = child;
      break;
    }
    else
    {
      foundTransform = FindChildWithName(child, name);
      if(foundTransform != null) { break; }
    }
  }
  return foundTransform;
}

I haven’t tested this code, but I think it’ll work? Basically, it goes through all the children until it finds the Transform with the name you’re looking for. It performs a depth-first search of the hierarchy; an alternative would be a breadth-first search. Also, it won’t necessarily work if there is more than one transform in the hierarchy with the same name - so watch out!