From 1d76c965708e731cb23206a1993d0a38b9090f48 Mon Sep 17 00:00:00 2001 From: Ashe Leclerc Date: Sun, 10 Apr 2022 06:14:01 +0200 Subject: [PATCH] mv: add OverwriteMode match in specific case Check OverwriteMode and act depending on its value, specifically in the the case of overwriting a non-directory with a directory(#3337) --- src/uu/mv/src/mv.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/uu/mv/src/mv.rs b/src/uu/mv/src/mv.rs index 60cff5dfb..6642a2eb8 100644 --- a/src/uu/mv/src/mv.rs +++ b/src/uu/mv/src/mv.rs @@ -258,6 +258,16 @@ fn exec(files: &[OsString], b: &Behavior) -> UResult<()> { move_files_into_dir(&[source.clone()], target, b) } } else if target.exists() && source.is_dir() { + match b.overwrite { + OverwriteMode::NoClobber => return Ok(()), + OverwriteMode::Interactive => { + println!("{}: overwrite {}? ", uucore::util_name(), target.quote()); + if !read_yes() { + return Ok(()); + } + } + OverwriteMode::Force => {} + }; Err(MvError::NonDirectoryToDirectory( source.quote().to_string(), target.quote().to_string(),