在命令中使用先前的“路径”

在命令中使用先前的“路径”

几年前,一位前同事告诉我一个 Bash 的技巧,但我完全忘记了怎么做。这个想法是,当您键入路径时,在下一个命令中,您可以使用一些快捷方式自动将该路径也放在那里。

假设我创建了目录/tmp/test。如果我想将文件移到那里,我可以mv file [shortcut that puts /tmp/test]

那个捷径是什么?

答案1

Esc+.Alt+.

mkdir mydir
cd [here you press ESC+.] mydir

另请参阅:如何使用上一个命令的参数? |堆栈溢出

答案2

您可以使用$_,它是上一个命令的最后一个参数:

$ mkdir /tmp/test
$ echo "$_"
  /tmp/test

从我的/usr/share/doc/bash/bashref.html#特殊参数-1:

_($_,下划线。)在 shell 启动时,设置为用于调用在环境或参数列表中传递的 shell 或正在执行的 shell 脚本的绝对路径名。随后,在扩展后扩展至上一个命令的最后一个参数。还设置为用于调用执行的每个命令并放置在导出到该命令的环境中的完整路径名。检查邮件时,该参数保存邮件文件的名称。

或者,如果您处于set -o emacs模式下,您可以使用阅读线yank-last-arg (M-., M-_)

相关内容