Bash
如何在 bash 控制台上重複目前輸入的參數?
我只是在輸入以下內容:
mv foo/bar/poit/zoid/narf.txt
突然意識到,該死的,我必須再次輸入該參數的大部分內容
mv foo/bar/poit/zoid/narf.txt foo/bar/poit/zoid/troz.txt
即使有tabcompletion,也很痛苦。我知道我可以通過滑鼠選擇文本和中鍵來複製粘貼參數,但這還不夠好。我想留在鍵盤上。
那麼有沒有辦法使用鍵盤複製粘貼該行的目前參數?
如果我提前計劃,我會使用大括號擴展。在這種情況下:
mv foo/bar/poit/zoid/{narf,troz}.txt
這是使用預設
readline
鍵盤快捷鍵的另一種方法:
mv foo/bar/poit/soid/narf.txt
: 開始Ctrl
-w
:unix-word-rubout
刪除foo/bar/poit/soid/narf.txt
Ctrl
-y
,Space
,Ctrl
-y
:yank
, 空格,yank
再次得到mv foo/bar/poit/soid/narf.txt foo/bar/poit/soid/narf.txt
Meta
-backspace
,Meta
-backspace
:backward-kill-word
兩次刪除最後一個narf.txt
troz.txt
: 鍵入不同的尾部如果您花費大量時間使用
bash
shell,我建議您定期閱讀預設快捷方式列表,並挑選一些似乎對學習有用並融入您的日常工作的快捷方式。 手冊的第 8 章bash
是一個很好的起點。知道捷徑真的可以提高你的效率。
歷史擴展實際上也適用於目前命令,使用事件指示符
!#
。將它與最後一個參數的詞指示符結合起來 -$
- 以獲取您剛剛鍵入的參數。您可以使用所有正常修飾符,因此,例如,如果您正在重命名遠處目錄中的文件,您只需鍵入:mv path/you/do/not/want/to/type/twice/oldname !#$:h/newname