tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Adding linux_link(2) system call
On Fri, Jul 29, 2011 at 11:37:48AM -0400, Greg Troxel wrote:
> > a) Create a file A
> > b) Create a symlink X->A
> > c) Create a hard link Y=X
> > d) Unlink a
> > e) Create a directory A
Here is what happens. The semantics are really different.
$ touch A
$ ln -s A X
$ ln X Y
$ unlink A
$ mkdir A
$ ls -lid A X Y
1135709 drwxrwxr-x 2 manu manu 4096 jui 29 20:33 A
1135711 lrwxrwxrwx 2 manu manu 1 jui 29 20:33 X -> A
1135711 lrwxrwxrwx 2 manu manu 1 jui 29 20:33 Y -> A
$ uname
Linux
$ cd /tmp
$ touch A
$ ln -s A X
$ ln X Y
$ unlink A
$ mkdir A
$ ls -lid A X Y
672129 drwxr-xr-x 2 manu wheel 512 Jul 29 20:35 A
533126 lrwxr-xr-x 1 manu wheel 1 Jul 29 20:35 X -> A
533109 -rw-r--r-- 1 manu wheel 0 Jul 29 20:35 Y
$ uname
NetBSD
> > a) Create a symlink X-A', where A' doesn't exist
> > b) Create a hard link Y=X
> > c) Create a directory A
$ ln -s A X
$ ln X Y
$ mkdir A
$ ls -lid A X Y
1135711 drwxrwxr-x 2 manu manu 4096 jui 29 20:38 A
1135709 lrwxrwxrwx 2 manu manu 1 jui 29 20:38 X -> A
1135709 lrwxrwxrwx 2 manu manu 1 jui 29 20:38 Y -> A
$ uname
Linux
$ rm -Rf A X Y
$ ln -s A X
$ ln X Y
ln: X: No such file or directory
$ uname
NetBSD
> Is there some way in Linux to change the symlink target and have both
> (hardlinked) source names point to the new target?
Here is my attempt:
$ touch A B
$ ln -s A X
$ ln X Y
$ ln -sf B X
$ ls -lid A B X Y
1135709 -rw-rw-r-- 1 manu manu 0 jui 29 20:40 A
1135711 -rw-rw-r-- 1 manu manu 0 jui 29 20:40 B
1135719 lrwxrwxrwx 1 manu manu 1 jui 29 20:41 X -> B
1135717 lrwxrwxrwx 1 manu manu 1 jui 29 20:40 Y -> A
--
Emmanuel Dreyfus
manu%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index