WEB+DB Press vol.84 読んでて知った、シンボリックリンクのアトミックな入れ替え。 $ mkdir 1 $ touch 1/1.txt $ mkdir 2 $ touch 2/2.txt $ ln -s 1 cur $ strace ln -sfn 2 cur lstat("cur", {st_mode=S_IFLNK|0777, st_size=1, ...}) = 0 lstat("cur", {st_mode=S_IFLNK|0777, st_size=1, ...}) = 0 stat("2", {st_mode=S_IFDIR|0755, st_size=60, ...}) = 0 symlink("2", "cur") = -1 EEXIST (File exists) unlink("cur") = 0 symlink("2", "cur") = 0 $ mk