diff --git a/src/uu/mv/src/error.rs b/src/uu/mv/src/error.rs index 103c1116a..7810c3a95 100644 --- a/src/uu/mv/src/error.rs +++ b/src/uu/mv/src/error.rs @@ -15,6 +15,7 @@ pub enum MvError { DirectoryToNonDirectory(String), NonDirectoryToDirectory(String, String), NotADirectory(String), + TargetNotADirectory(String), } impl Error for MvError {} @@ -34,7 +35,8 @@ impl Display for MvError { Self::NonDirectoryToDirectory(s, t) => { write!(f, "cannot overwrite non-directory {t} with directory {s}") } - Self::NotADirectory(t) => write!(f, "target {t} is not a directory"), + Self::NotADirectory(t) => write!(f, "target {t}: Not a directory"), + Self::TargetNotADirectory(t) => write!(f, "target directory {t}: Not a directory"), } } } diff --git a/src/uu/mv/src/mv.rs b/src/uu/mv/src/mv.rs index d0a1a766f..53446dd8a 100644 --- a/src/uu/mv/src/mv.rs +++ b/src/uu/mv/src/mv.rs @@ -320,7 +320,12 @@ fn exec(files: &[OsString], b: &Behavior) -> UResult<()> { fn move_files_into_dir(files: &[PathBuf], target_dir: &Path, b: &Behavior) -> UResult<()> { if !target_dir.is_dir() { - return Err(MvError::NotADirectory(target_dir.quote().to_string()).into()); + match b.target_dir { + Some(_) => { + return Err(MvError::TargetNotADirectory(target_dir.quote().to_string()).into()) + } + None => return Err(MvError::NotADirectory(target_dir.quote().to_string()).into()), + } } let canonized_target_dir = target_dir