diff --git a/src/copy.c b/src/copy.c index 26d5bdd..97dacac 100644 --- a/src/copy.c +++ b/src/copy.c @@ -1281,6 +1281,18 @@ close_src_and_dst_desc: error (0, errno, _("failed to close %s"), quote (dst_name)); return_val = false; } + + if (! return_val && *new_dst) + { + if (errno == EXDEV || errno == ENOTTY || errno == ENOTSUP) + { + if (unlink (dst_name) != 0) + error (0, errno, _("cannot remove %s"), quote (dst_name)); + else if (x->verbose) + printf (_("removed %s\n"), quote (dst_name)); + } + } + close_src_desc: if (close (source_desc) < 0) {