apply recursion in apps.softlink.get_abs_path()