[CentOS] Overwrite target of ln

Tue Mar 4 23:39:35 UTC 2008
Matt Arnilo S. Baluyos (Mailing Lists) <matt.baluyos.lists at gmail.com>

On 05/03/2008, Garrick Staples <garrick at usc.edu> wrote:
> On Wed, Mar 05, 2008 at 07:20:50AM +0800, Matt Arnilo S. Baluyos (Mailing Lists) alleged:
>
> > Hi all,
>  >
>  > Sorry if this seems too basic.
>  >
>  > But is there a way to overwrite the target of a symbolic link without
>  > first deleting the symlink itself?
>  >
>  > For example, if I have this:
>  >
>  > public_html -> releases/b2b-20080228
>  >
>  > ... and there's a new update, I can then just do the following:
>  >
>  > $ ln releases/site-latest public_html
>  >
>  > I tried using the -f option but it doesn't seem to work as expected.
>
>
> Your example doesn't have -s?  I assume that was a typo?
>
>  Anyways, ln -sf does exactly what you describe.
>
>  $ ls -l foo
>  lrwxrwxrwx  1 garrick rds 3 Mar  4 15:24 foo -> bar
>  $ ln -sf bar2 foo
>  $ ls -l foo
>  lrwxrwxrwx  1 garrick rds 4 Mar  4 15:24 foo -> bar2

Hi,

Sorry. That was a typo.

I have just tried using a target as a file and it does seem to work
with the -f option. It's only when the target is a directory that it
fails:

$ ll
drwxrwxr-x 2 matt matt 4096 Mar  4 14:34 dir1
drwxrwxr-x 2 matt matt 4096 Mar  4 14:34 dir2
lrwxrwxrwx 1 matt matt    4 Mar  4 14:35 link -> dir1

$ ln -s dir2 link

$ ll
drwxrwxr-x 2 matt matt 4096 Mar  4 14:35 dir1
drwxrwxr-x 2 matt matt 4096 Mar  4 14:34 dir2
lrwxrwxrwx 1 matt matt    4 Mar  4 14:35 link -> dir1

-- 
Stand before it and there is no beginning.
Follow it and there is no end.
Stay with the ancient Tao,
Move with the present.