pub fn normalize(path: &Path) -> PathBuf
Expand description
Normalize path to collapse “..”, “.”, and duplicate separators. This function does not access the filesystem, so it can return an incorrect result if the path contains symlinks.
assert_eq!(normalize("foo/.//bar/../baz/".as_ref()), Path::new("foo/baz"));
// Interesting edge cases:
assert_eq!(normalize("".as_ref()), Path::new("."));
assert_eq!(normalize("..".as_ref()), Path::new(".."));
assert_eq!(normalize("/..".as_ref()), Path::new("/"));
This behavior matches that of Python’s os.path.normpath
and Go’s path.Clean
.