Ну, не хотите полный путь - можно
ls ${branchDir%=r*}${target}
заменить на
find ${branchDir%=r*} -name ${target}
и будет искать просто по имени. Полный путь - это я подумал, если в системе несколько файлов с одинаковым именем, то который ищем-то? С полным путем найдем конкретный, а с базовым именем - все, что есть, причем, возможно, в разных пакетах.
А что, у других puppy корень не на aufs собран? Я других, к сожалению, не видел, что поставил, на то и смотрю.
Суть идеи была в том, чтобы не привязываться к конкретной директории /mnt/live/memory/images, а смотреть, из каких директорий собран корень на aufs и в них искать.
Проверка si -это на тот случай, если вдруг в системе aufs не только на корне. А цикл идет не по si, а по бранчам, из которых aufs собрана.