我可以引用我在bash中指定的最后一个路径或文件吗?

时间:2013-12-09 07:13:18

标签: bash command-line-arguments

例如,如果我mv要说一个文件example.ex,然后想要chmod它,有没有办法可以快速访问example.ex?

我希望$last$-1有些内容,但我搜索“Bash reference last file | path”会产生不相关的内容。

2 个答案:

答案 0 :(得分:3)

$_将为您提供上一个命令的最后一个字,它似乎足以满足您当前的需求。例如:

mkdir biglongdirname
cp *.c $_

将创建该目录并将所有C文件复制到其中。

对于您的具体示例,它将类似于:

mv srcfile.ex example.ex
chmod 700 $_

请注意,$_扩展后的最后一个参数,您可以使用csh - 类似变体!$来获取扩展前的最后一个参数(事件发生后我添加了评论:

pax> echo {1..5}  # will expand to "1 2 3 4 5" (sans quotes).
1 2 3 4 5

pax> echo !$      # will give pre-expansion last arg "{1..5}".
echo {1..5}       # shows command before executing.
1 2 3 4 5

pax> echo $_      # will give post-expansion last arg "5".
5

答案 1 :(得分:0)

对于交互式使用,有一个键盘组合正是如此: alt +。(alt + dot)

它直接在命令行中插入最后一个命令的最后一个参数(如果你多次按下它,你可以循环每个命令的最后一个参数)。

尝试一下,我已经适应了这一点,现在我就用它了。