diff --git a/src/shell/filesystem_shell.rs b/src/shell/filesystem_shell.rs index e7038c40c4..98f51d0959 100644 --- a/src/shell/filesystem_shell.rs +++ b/src/shell/filesystem_shell.rs @@ -831,13 +831,7 @@ impl Shell for FilesystemShell { ) -> Result, ShellError> { let name_span = name; - let mut path = PathBuf::from(path); - - path.push(&target.item); - - let file = path.to_string_lossy(); - - if file == "." || file == ".." { + if target.item.to_str() == Some(".") || target.item.to_str() == Some("..") { return Err(ShellError::labeled_error( "Remove aborted. \".\" or \"..\" may not be removed.", "Remove aborted. \".\" or \"..\" may not be removed.", @@ -845,6 +839,12 @@ impl Shell for FilesystemShell { )); } + let mut path = PathBuf::from(path); + + path.push(&target.item); + + let file = path.to_string_lossy(); + let entries: Vec<_> = match glob::glob(&path.to_string_lossy()) { Ok(files) => files.collect(), Err(_) => {