From: Joel VanderWerf Date: 2009-06-13T07:11:22+09:00 Subject: Re: bug in FileUtils.ln_s ? Joel VanderWerf wrote: > > FileUtils.ln_s is supposed to do this: > > ln_s(old, new, options = {}) > > Creates a symbolic link new which points to old. If new already > exists and it is a directory, creates a symbolic link +new/old+. > If new already exists and it is not a directory, raises > Errno::EEXIST. But if :force option is set, overwrite new. > > But in this case something is wrong: > > $ mkdir foo > $ echo 1>t.rb > $ ruby -r fileutils -e 'FileUtils.ln_s "t.rb", "foo/t.rb"' > $ ls -l foo > total 0 > lrwxrwxrwx 1 vjoel vjoel 4 2009-06-12 14:47 t.rb -> t.rb > > Why is this a cyclic link? Bah, that's the way ln(1) behaves, and I forgot. Moral of the story, it's a _symbolic_ link; #ln_s just creates a link to the string you give it, without relativizing to the current dir or anything. -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407