如何将输出重定向到 cd?

如何将输出重定向到 cd?

是否可以将命令的输出重定向到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
$ 

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

答案1

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

cd "$(locate Descargas | grep -F 'Descargas$')"

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

这也可以通过“反引号”(“`”)来完成:

cd "`locate Descargas | grep -F 'Descargas$'`"

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

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

相关内容