Linux 如何使用rust将操作系统更改为目录?
我试图在Rust中复制Linux 如何使用rust将操作系统更改为目录?,linux,unix,rust,Linux,Unix,Rust,我试图在Rust中复制cd命令,只是为了学习 但问题是,我不知道如何在操作系统(*nix)中更改目录。我试过: std::process::Command::new("cd") .arg(path) //path is a String .spawn() .expect("Directory failed"); let path = Path::new(path_str.as_str()); let changed_dir = env::set_current_dir(
cd
命令,只是为了学习
但问题是,我不知道如何在操作系统(*nix)中更改目录。我试过:
std::process::Command::new("cd")
.arg(path) //path is a String
.spawn()
.expect("Directory failed");
let path = Path::new(path_str.as_str());
let changed_dir = env::set_current_dir(&path).is_ok();
并尝试:
std::process::Command::new("cd")
.arg(path) //path is a String
.spawn()
.expect("Directory failed");
let path = Path::new(path_str.as_str());
let changed_dir = env::set_current_dir(&path).is_ok();
并且changed\u dir
为真
甚至我也尝试过更改env::set_var(“PWD”,path)
,但似乎没有任何效果
我检查了文档的这一部分:
但我认为这只是一种沙盒路径或目录
还有什么想法吗?如何检查它是否工作?无法更改外部终端的$PWD。不在Rust中,不在C中,不在任何语言中。请参阅以获取解释。它只能作为一个shell函数,就像它在中定义了一个名为
j
in的shell函数一样,即第二个相关链接中的方法。j
函数运行主Go程序来计算目标目录,然后调用内置的cd
跳转到那里。@Shepmaster这是其他语言问题的重复吗?@因为问题与实现语言无关。检查已经解释了这一点,然后检查说明了如何使用程序计算目录,以便使用shell的cd
命令来导航。