Bash

$_ 不適用於複製和移動命令

  • November 11, 2016

我面臨使用問題, 終端$_中的$_特殊參數,以及它呼叫上一個命令的最後一個參數。

它不適用於 gnome-terminal 中的cpand命令。它在創建文件夾和/或帶有 $_ 的文件mv期間發生在我身上,如下所示mv``cp

mkdir test
cp file.c $_

它不是將文件複製到目標,而是在目前目錄中創建一個名為_filedir.

mv命令也會發生同樣的情況

mkdir test
mv file.c $_

而不是將文件移動到目的地,而是在名稱中移動_filedir

為了找到問題,我使用 echo

$ mkdir test
$ echo $_
_filedir

為什麼 $_ 不能與 cp、mv 命令一起使用?

$_ - 將最後一個參數提供給前一個命令。在 shell 啟動時,它給出正在執行的 shell 腳本的絕對文件名。當你執行

mkdir test
mv file.c $_

檢查你的 mv, cp 是否是別名

在 bash 中將最後一個 arg 訪問到 History 中的上一個命令使用 !:$ ,例如:

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

引用自:https://unix.stackexchange.com/questions/322511