例如,我想做以下事情:
mv xxxx xxxx.bak
我知道我可以使用以下内容:
mv xxxx{,.bak}
我认为不是直接的。如果我能这样做会很棒:
mv xxxx $1.bak
有时我们会像这样需要它:
echo xxxx yyyy $1.suffix
我知道我们可以使用"!:n"来引用上一个命令的参数,我可以吗? 而是同样引用当前命令的参数?
顺便说一句,我想直接在shell中进行(交互式)。 感谢。答案 0 :(得分:13)
当前命令行以!#
引用。
mv xxxx !#:1.bak
如果您尚未使用histverify
选项,我建议您启用shopt -s histverify
选项,这样您就有机会在实际执行之前校对或编辑历史记录扩展的结果。为此:
:p
或者,如果您不想启用该选项并且只想验证单个命令,请使用$ mv xxx !#:1:p.bak
mv xxx xxx.bak
$
修饰符打印扩展而不是执行它:
{{1}}
答案 1 :(得分:1)
一种方法是使用变量。就像:
f="file"
cp $f $f.bak