libmythings.so -> libmythings.so.1 -> libmythings.so.1.1 libotherthings.so -> libotherthings.so.5 -> libotherthings.so.5.11 for baselib in "$@" do shortlib=$baselib while extn=$(echo $shortlib | sed 's/.[0-9][0-9]*$//') [ -n "$extn" ] do shortlib=$(basename $shortlib $extn) ln -s $baselib $shortlib done done for baselib in "$@" do shortlib=$baselib while extn=$(echo $shortlib | sed 's/.[0-9][0-9]*$//') [ -n "$extn" ] do shorterlib=$(basename $shortlib $extn) ln -s $shortlib $shorterlib shortlib=$shorterlib done done set -- libname.so.5.1.1 for baselib in "$@" do shortlib=$baselib while extn=$(echo $shortlib | sed -n '/.[0-9][0-9]*$/s/.*(.[0-9][0-9]*)$/1/p') [ -n "$extn" ] do shortlib=$(basename $shortlib $extn) echo ln -s $baselib $shortlib done done ln -s libname.so.5.1.1 libname.so.5.1 ln -s libname.so.5.1.1 libname.so.5 ln -s libname.so.5.1.1 libname.so ldconfig -v ldconfig /path/to/dir