Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何使用rust将操作系统更改为目录?_Linux_Unix_Rust - Fatal编程技术网

Linux 如何使用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(

我试图在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(&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
命令来导航。