Your ks file is not in unix text format. It has dos-style line endings. You see, bash does not consider 0x0d be a whitespace character, so it becomes part of the last argument. It is as if you typed: % ln -s /etc/rc.d/init.d/ks-post-reboot $'/etc/rc.d/rc3.d/S99ks-post-reboot\r'