fs.symlink 无法在 linux 上创建目录符号链接

fs.symlink can't create directory symlinks on linux

根据 Documentation 创建符号链接 dir 仅在 windows 上可用。

这是我将在终端中使用的命令 ln -r -s ../../../cloud_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_data)

从你上一张图片可以看出符号链接创建得很好。它说 "Type: link" 并列出 "Link target".

符号链接是 "broken" 因为目标路径不存在。

如果您在

中有符号链接
/var/wwww/cloud/websites/www/src/data

目标为../../../cloud_data/,则对应

/var/wwww/cloud/websites/www/src/../../../cloud_data/

减少到

/var/wwww/cloud/cloud_data/

不存在。

您是指 ../../../../cloud_data(或者只是一个绝对路径,/var/wwww/cloud_data)吗?