mv: fix error message when one of the multiple src doesn't exist

This commit is contained in:
mhead 2024-11-01 13:35:47 +05:30
parent e947c713c8
commit 2c528cfcb5
2 changed files with 20 additions and 0 deletions

View file

@ -446,6 +446,11 @@ fn move_files_into_dir(files: &[PathBuf], target_dir: &Path, options: &Options)
};
for sourcepath in files {
if !sourcepath.exists() {
show!(MvError::NoSuchFile(sourcepath.quote().to_string()));
continue;
}
if let Some(ref pb) = count_progress {
pb.set_message(sourcepath.to_string_lossy().to_string());
}

View file

@ -1717,3 +1717,18 @@ mod inter_partition_copying {
.stderr_contains("Permission denied");
}
}
#[test]
fn test_mv_error_msg_with_multiple_sources_that_does_not_exist() {
let scene = TestScenario::new(util_name!());
let at = &scene.fixtures;
at.mkdir("d");
scene
.ucmd()
.arg("a")
.arg("b/")
.arg("d")
.fails()
.stderr_contains("mv: cannot stat 'a': No such file or directory")
.stderr_contains("mv: cannot stat 'b/': No such file or directory");
}