I think I found a bug or two in coreutils. ln(1) allows me to create link to a non-exiting directory. I would expect to be required to specify -f argument to force it. At least a warning message would have been advantageous. Definitely, when the target does not exist the shell expansion does not work. In that case, ln creates a link to 'blah.*'. Or is that a bash issue (app-shells/bash-4.0_p24)? $ ln -s /blah/blah/blah.* . $ ls -la total 56 drwx------ 2 mmokrejs mmokrejs 4096 Jun 3 16:24 . drwx------ 4 mmokrejs mmokrejs 4096 Feb 18 20:29 .. lrwxrwxrwx 1 mmokrejs mmokrejs 17 Jun 3 16:24 blah.* -> /blah/blah/blah.* $
No, its not a bash-4 issue. The shell can't expand blah.* to anything so it is treated literally. I'm 95% sure that this is expected coreutils behavior given that -f is not for creating symlinks, only removing. -f, --force remove existing destination files
This bug is invalid. This is how ln has always worked.