是否可以将命令的输出重定向到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/^[^ ]*//')"