如何将输出重定向到 cd?

oli*_*206 13 shell io-redirection cd-command

是否可以将命令的输出重定向到cd?例如,我使用搜索目录locate并获得了它的路径。现在,cd我可以将locate输出重定向到cd?

我试过这个:

$ locate Descargas | grep Descargas$
/home/oliver/Descargas
$ locate Descargas | grep Descargas$ | cd
$ locate Descargas | grep Descargas$ > cd
$ locate Descargas | grep Descargas$ < cd
/home/oliver/Descargas
$ 
Run Code Online (Sandbox Code Playgroud)

没运气。这可能不是特别有用,但我很好奇。

Chr*_*sen 18

您想要命令替换,而不是重定向:

cd "$(locate Descargas | grep -F 'Descargas$')"
Run Code Online (Sandbox Code Playgroud)

$(和之间的位)作为命令运行,输出(去掉任何最后的换行符)被替换为整个命令。

这也可以用“反勾号”(“`”)来完成:

cd "`locate Descargas | grep -F 'Descargas$'`"
Run Code Online (Sandbox Code Playgroud)

美元括号语法通常是首选,因为它在嵌套情况下更容易处理:

# contrived
cd "$(grep '^dir: ' "$(locate interesting-places | head -1)" | sed 's/^[^ ]*//')"
Run Code Online (Sandbox Code Playgroud)