Bashコンソールで現在入力されている引数を繰り返すには?

Bashコンソールで現在入力されている引数を繰り返すには?

私は次のように入力します。

mv foo/bar/poit/zoid/narf.txt

突然、私はそのパラメータのほとんどを再入力する必要があることに気づきました。

mv foo/bar/poit/zoid/narf.txt foo/bar/poit/zoid/troz.txt

タップが完成しても、これはかなり痛いです。マウスでテキストを選択し、マウスの中央ボタンをクリックしてパラメータをコピーして貼り付けることができることを知っていますが、それだけでは不十分です。キーボードに手を載せたい。

キーボードを使用してその行の現在のパラメータをコピーして貼り付ける方法はありますか?

答え1

履歴拡張は、実際には次のコマンドを使用して現在のコマンドでも機能します。イベントインジケータ !#。これを比較する単語インジケーター最後のパラメータの場合は、$入力したパラメータを取得します。

正規表現をすべて使用できます。修飾子たとえば、リモートディレクトリにあるファイルの名前を変更するには、次のように入力します。

mv path/you/do/not/want/to/type/twice/oldname !#$:h/newname

答え2

あらかじめ計画を立てたら利用します支柱の拡張。この場合:

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最後の項目を2回削除します。narf.txt
  • troz.txt:別の末尾の部分を入力してください。

シェルを使用するのに多くの時間を費やしている場合は、基本的なbashショートカットリストを定期的に読んで学習し、日常生活に適用するのに役立つようなものを選択することをお勧めします。 bashマニュアル8章良い出発点です。近道を知ることで効率が大幅に向上することがあります。

答え3

あなたの例に示すように、次の設定を使用できます。

mv foo/bar/poit/zoid/{narf.txt,troz.txt}

でも(提案通りアンスガエステルのみ):

mv foo/bar/poit/zoid/{narf,troz}.txt

長いアドレスを2回入力/コピーして貼り付ける代わりに。

答え4

少し遊んだ後、次のように動作しました。

mv foo/bar/poit/zoid/narf.txt

Enter
最後のパラメータを保存するにはクリックしてください。

これで、最後に入力したコンテンツを取得するために使用されます。スペースを入力し、最後に使用された引数を取得します。

Alt+.

私はエラーを投げるのが嫌いですが、このユースケースでは正しく動作します。

関連情報