我使用该fs
模块创建符号链接.
fs.symlink("target", "path/to/symlink", function (e) {
if (e) { ... }
});
Run Code Online (Sandbox Code Playgroud)
如果path/to/symlink
已存在,则在回调中发送错误.
如何强制创建符号链接并覆盖现有的符号链接?
还有另一种选择check error + delete existing symlink + try again
吗?
Ion*_*zău 22
使用ln
命令行工具时,我们可以使用-f
(强制)标志执行此操作
ln -sf target symlink-name
Run Code Online (Sandbox Code Playgroud)
但是,fs
除非我们在模块中实现此功能,否则无法使用API.
我创建了lnf
- 一个覆盖现有符号链接的模块.
// Dependencies
var Lnf = require("lnf");
// Create the symlink
Lnf.sync("foo", __dirname + "/baz");
// Override it
Lnf("bar", __dirname + "/baz", function (err) {
console.log(err || "Overriden the baz symlink.");
});
Run Code Online (Sandbox Code Playgroud)
您可以使用其他(唯一)名称创建临时符号链接,然后将其重命名。
使用fs.symlinkSync(path, tempName)
然后fs.rename(tempName, name)
。
当其他应用程序依赖文件的存在时,它可能比删除文件更好(并且在删除但尚未重新创建文件时,可能会意外访问文件)。
归档时间: |
|
查看次数: |
9855 次 |
最近记录: |