如何将输出重定向到cd?


11

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

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

Answers:


16

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

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

$(和之间的位)作为命令运行,并且输出(从任何最后的换行符中删除)都替换为总体命令。

这也可以通过“回勾”(“`”)来完成:

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

通常首选dollar-paren语法,因为它在嵌套情况下更易于处理:

# contrived
cd "$(grep '^dir: ' "$(locate interesting-places | head -1)" | sed 's/^[^ ]*//')"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.