uutils/coreutils

mv Cross-Device Symlink Fallback EEXIST

Closed

#10010 opened on Jan 3, 2026

View on GitHub
 (0 comments) (0 reactions) (0 assignees)Rust (23,246 stars) (1,852 forks)batch import
U - mvgood first issuereported-canonical

Description

Component

mv

Description

When moving a symlink across filesystems onto an existing destination path, uutils mv fails instead of replacing the destination like GNU mv does.

Test / Reproduction Steps

On filesystem A (e.g. /tmp), create a symlink:
$ ln -s /etc/passwd /tmp/src_link

On filesystem B (e.g. /home), create an existing destination:
$ touch /home/$USER/dst_exists
$ coreutils mv /tmp/src_link /home/$USER/dst_exists
  • GNU: dst_exists has been replaced with src_link.
  • uutils: File exists (os error 17)

Impact

The file move fails instead of overwriting the target directly.

Contributor guide