$_ 不适用于复制和移动命令

$_ 不适用于复制和移动命令

我面临使用问题 $_$_终端中的哪个特殊参数,以及它调用上一个命令的最后一个参数。

它不适用于gnome-terminal 中的cp命令。在我创建文件夹和/或使用 $_ 文件mv时发生这种情况,如下所示mvcp

 mkdir test
 cp file.c $_

它不是将文件复制到目标,而是在当前目录中创建一个名为_filedir.

mv命令也会发生同样的情况

mkdir test
mv file.c $_

它不是将文件移动到目的地,而是移动名称_filedir

为了找到问题,我使用 echo

$ mkdir test
$ echo $_
_filedir

为什么 $_ 不能与 cp、mv 命令一起使用?

答案1

$_ - 给出前一个命令的最后一个参数。在 shell 启动时,它给出正在执行的 shell 脚本的绝对文件名。当你执行

mkdir test
mv file.c $_

检查你的mv、cp是否是别名

在 bash 中,要访问历史记录中上一个命令的最后一个参数,请使用 !:$ ,例如:

> mkdir test
> mv file.c !:$
mv file.c test

相关内容