diff --git a/src/uu/mv/src/mv.rs b/src/uu/mv/src/mv.rs index b79c43ad3..d929f2bf0 100644 --- a/src/uu/mv/src/mv.rs +++ b/src/uu/mv/src/mv.rs @@ -419,7 +419,12 @@ fn rename( } match b.overwrite { - OverwriteMode::NoClobber => return Ok(()), + OverwriteMode::NoClobber => { + return Err(io::Error::new( + io::ErrorKind::Other, + format!("not replacing {}", to.quote()), + )); + } OverwriteMode::Interactive => { if !prompt_yes!("overwrite {}?", to.quote()) { return Err(io::Error::new(io::ErrorKind::Other, "")); diff --git a/tests/by-util/test_mv.rs b/tests/by-util/test_mv.rs index e4064e68a..e7c115bf1 100644 --- a/tests/by-util/test_mv.rs +++ b/tests/by-util/test_mv.rs @@ -232,8 +232,9 @@ fn test_mv_no_clobber() { ucmd.arg("-n") .arg(file_a) .arg(file_b) - .succeeds() - .no_stderr(); + .fails() + .code_is(1) + .stderr_only(format!("mv: not replacing '{file_b}'\n")); assert!(at.file_exists(file_a)); assert!(at.file_exists(file_b));