linux原子方式,linux – 以原子方式移动目录

如果使用符号链接,可以这样做:

假设alpha是目录alpha_1的符号链接,并且您想要将符号链接转换为指向alpha_2。这是切换之前的样子:

$ ls -l

lrwxrwxrwx alpha -> alpha_1

drwxr-xr-x alpha_1

drwxr-xr-x alpha_2

要使alpha参考alpha_2,请使用ln -nsf:

$ ln -nsf alpha_2 alpha

$ ls -l

lrwxrwxrwx alpha -> alpha_2

drwxr-xr-x alpha_1

drwxr-xr-x alpha_2

现在可以删除旧目录:

$ rm -rf alpha_1

请注意,这并不是一个完全原子的操作,但它确实发生得很快,因为“ln”命令都取消链接,然后立即重新创建符号链接。您可以使用strace验证此行为:

$ strace ln -nsf alpha_2 alpha

...

symlink("alpha_2", "alpha") = -1 EEXIST (File exists)

unlink("alpha") = 0

symlink("alpha_2", "alpha") = 0

...

您可以根据需要重复此过程:例如当您有新版本时,alpha_3:

$ ln -nsf alpha_3 alpha

$ rm -rf alpha_2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值