我正在嘗試復制 bash 命令 mv `ls | head -5` ./subfolder1/
在銹。這是為了移動目錄中的前五個檔案,它在 shell 中作業正常。我正在使用 command::new 行程構建器,但以下代碼失敗并出現相關錯誤:
Command::new("mv")
.current_dir("newdir")
.args(&["`ls | head -5`", "newdir"])
.env("PATH", "/bin")
.spawn()
輸出:
mv: cannot stat cannot stat '`ls | head -5`': No such file or directory
uj5u.com熱心網友回復:
與幾乎所有這樣的結構一樣,Command是一個fork由exec*家族跟隨的前端,這意味著它執行一個命令,它不是一個子外殼,也不會委托給外殼。
如果您想鏈接多個命令,您將不得不單獨運行它們并手動連接它們,盡管存在提供 shell 樣式界面的庫(這意味著危險和低效)。
雖然無法正確理解您為什么要在這里打擾,但所有這些似乎都很容易std::fs(并且可能有一些std::env)例如
for entry in fs::read_dir(".")?.take(5) {
let entry = entry?;
fs::rename(entry.path(), dest.join(entry.file_name()))?;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/392546.html
