我希望能够在后续命令中使用上次执行命令的结果。例如,
$ find . -name foo.txt
./home/user/some/directory/foo.txt
现在假设我希望能够在编辑器中打开文件,或者删除它,或者用它做其他事情,例如
mv <some-variable-that-contains-the-result> /some/new/location
我该怎么做?也许使用一些 bash 变量?
更新:
为了澄清,我不想手动分配东西。我所追求的是内置 bash 变量之类的东西,例如
ls /tmp
cd $_
$_
保存前一个命令的最后一个参数。我想要类似的东西,但输出的是最后一个命令。
最终更新:
赛斯的回答效果很好。要记住的几件事:
touch/tmp/x
最佳答案
我不知道有什么变量可以自动进行。除了复制粘贴结果之外,您还可以重新运行您刚才所做的任何事情,例如
vim $(!!)
其中 !!
是历史扩展,意思是“上一个命令”。
如果您希望有一个包含空格或其他字符的文件名可能会妨碍正确的参数解析,请引用结果 (vim "$(!!)"
)。不加引号将允许一次打开多个文件,只要它们不包含空格或其他 shell 解析标记。
https://stackoverflow.com/questions/5955577/