summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/copy.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/copy.c b/src/copy.c
index e966a951b..645b90b46 100644
--- a/src/copy.c
+++ b/src/copy.c
@@ -1230,8 +1230,10 @@ copy_internal (char const *src_name, char const *dst_name,
else if (! S_ISDIR (dst_sb.st_mode)
&& (x->unlink_dest_before_opening
|| (x->preserve_links && 1 < dst_sb.st_nlink)
- || (x->dereference == DEREF_NEVER
- && S_ISLNK (src_sb.st_mode))))
+ || (!x->move_mode
+ && x->dereference == DEREF_NEVER
+ && S_ISLNK (src_sb.st_mode))
+ ))
{
if (unlink (dst_name) != 0 && errno != ENOENT)
{