Node.JS fs.rename不起作用

Tho*_*aaf 6 file-io debian node.js

在Debian Wheezy上重命名文件不能使用fs.rename或fs.renameSync.

这仅发生在从/ tmp /移动到另一个位置的文件中.

报告的错误是:EXDEV,不允许跨设备链接.

Tho*_*aaf 0

Debian Wheezy 默认使用 tmpfs 作为 /tmp 文件夹。

可以通过修改 /etc/default/rcS 来关闭此功能。

RAMTMP=yes
Run Code Online (Sandbox Code Playgroud)

必须设置为

RAMTMP=no
Run Code Online (Sandbox Code Playgroud)

  • 问题是 Node fs.renameSync 无法进行跨设备重命名,而不是某些特定机器在不同设备上有 tmp。不要仅仅因为这个就关闭RAMTMP。(此外,在当前的 Debian Jessie RAMTMP 上不起作用,/tmp tmpfs 是通过 systemd 配置的。)使用一些更智能的重命名,例如模块 __mv__:http://stackoverflow.com/a/29287813/196206 (3认同)