EXDEV oldpath и newpath не находятся в одной и той же смонтированной файловой системе. (Linux позволяет монтировать файловую систему в нескольких точках, но rename() не работает в разных точках монтирования, даже если одна и та же файловая система смонтирована на обоих.)
Эта ошибка также используется при наличии ERROR_NOT_SAME_DEVICE в Windows, см.:
winerror.h 0x80070011 #define ERROR_NOT_SAME_DEVICE Система не может переместить файл на другой диск.
Ответ 2
Похоже, вы пытаетесь переименовать файл через границы "устройства" (раздела).
Скажем, что /tmp - это другой раздел, чем /. Это означает, что вам не разрешено делать это:
fs.rename('/tmp/myfile.txt', '/myfile.txt', ...)
(то же самое относится и к fs.renameSync(), очевидно)
Если вы хотите это сделать, вам нужно сначала скопировать файл в новое место, а затем удалить старый файл. Существуют модули, такие как mv, которые могут вам помочь.
Ответ 3
Просто для тех парней, которые используют Linux, это происходит, когда ваш старый путь, то есть /tmp, и новый путь находятся на разных разделах или дисках.