Javascript fs.symlink可以';t在linux上创建目录符号链接
根据说明,创建符号链接是一个Javascript fs.symlink可以';t在linux上创建目录符号链接,javascript,node.js,symlink,Javascript,Node.js,Symlink,根据说明,创建符号链接是一个dir仅在windows上可用 这是我将在terminalln-r-s../../../cloud\u data//src/data中使用的命令 var fs = require('fs'); var localData = './src/data'; var externalData = '../../cloud_data'; function createSym (){ fs.symlink(externalData, localData, 'dir',
dir
仅在windows上可用
这是我将在terminalln-r-s../../../cloud\u data//src/data
中使用的命令
var fs = require('fs');
var localData = './src/data';
var externalData = '../../cloud_data';
function createSym (){
fs.symlink(externalData, localData, 'dir', function(d){
console.info(d);
});
}
fs.access(localData, fs.constants.F_OK, (err) => {
if (!err) {
createSym();
}else{
fs.unlink(localData, (err) => {
if (err) createSym();
});
}
});
我已经为我的pre-build
npm脚本编写了一个脏脚本,它只创建了一个可怕的小图标,但没有符号链接
下面您可以看到,我已经通过namo和alt拖动创建了一个符号链接(在左侧的cloud_数据上)
从上一张图像中,您可以看到符号链接创建得很好。它显示“Type:link”并列出“link target” 符号链接已“断开”,因为目标路径不存在 如果您在中有一个符号链接
/var/wwww/cloud/websites/www/src/data
其目标是。/../cloud\u data/
,则对应于
/var/wwww/cloud/websites/www/src/../../../cloud_data/
减少到
/var/wwww/cloud/cloud_data/
这是不存在的
你的意思是
。/../../../cloud\u data
(或者只是一个绝对路径,/var/wwww/cloud\u data
)?我打赌你指定了错误的目标路径。符号链接的路径相对于符号链接的位置。我敢打赌,您需要将externalData
设置为。/../../../cloud\u data
这不是文档所述的内容;它声明第三个(type
)参数仅在Windows上可用(对于其他平台被忽略)。确保你没有交换目标
和路径
@robertklep是的,这意味着它是windows中的目录链接还是连接链接,但是Dark Flacon说第二个参数是错误的,而不是第三个,@MartinBarker I在评论OP时说,我得到的印象是,他们认为符号链接到目录某种程度上只在Windows上受支持:)@robertklep我确实认为:D对我来说,似乎符号链接到文件夹在Linux中不受支持。。。这感觉就像是一个彻头彻尾的谎言,所以我猜参数type
不受支持?多么有趣,我想知道为什么。/../../../cloud\u data
可以从命令行运行,但是。/../../../../cloud\u data
可以在节点上运行?@JamieHutber可能是因为-r
的-ln
选项(我以前从未使用过)。如果您使用ln-s../../../cloud\u data//src/data
,它的工作/失败方式将完全相同。有趣的是,对我来说有些奇怪,lol,但添加。/
确实有效。所以谢谢您,我担心这个问题也不会帮助很多人;)