Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript fs.symlink可以';t在linux上创建目录符号链接_Javascript_Node.js_Symlink - Fatal编程技术网

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上可用

这是我将在terminal
ln-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,但添加
。/
确实有效。所以谢谢您,我担心这个问题也不会帮助很多人;)