diff --git a/src/uu/cp/src/cp.rs b/src/uu/cp/src/cp.rs index de01a5ef38..359f235720 100644 --- a/src/uu/cp/src/cp.rs +++ b/src/uu/cp/src/cp.rs @@ -1815,7 +1815,13 @@ fn copy_file( symlinked_files, )?; } - update_control::UpdateMode::ReplaceNone => return Ok(()), + update_control::UpdateMode::ReplaceNone => { + if options.debug { + println!("skipped {}", dest.quote()); + } + + return Ok(()); + } update_control::UpdateMode::ReplaceIfOlder => { let dest_metadata = fs::symlink_metadata(dest)?; diff --git a/tests/by-util/test_cp.rs b/tests/by-util/test_cp.rs index 37bec52223..8a20443a4f 100644 --- a/tests/by-util/test_cp.rs +++ b/tests/by-util/test_cp.rs @@ -3367,6 +3367,21 @@ fn test_cp_debug_sparse_reflink() { } } +#[test] +fn test_cp_debug_no_update() { + let ts = TestScenario::new(util_name!()); + let at = &ts.fixtures; + at.touch("a"); + at.touch("b"); + ts.ucmd() + .arg("--debug") + .arg("--update=none") + .arg("a") + .arg("b") + .succeeds() + .stdout_contains("skipped 'b'"); +} + #[test] #[cfg(target_os = "linux")] fn test_cp_debug_sparse_always() {