追加されたパラメータでコマンドを繰り返す方法

追加されたパラメータでコマンドを繰り返す方法

次のようにコマンドを繰り返し、コマンドの後にテキストを追加する方法を知っています!!

ls -l
!! tmp

2行目はに展開されますls -l tmp

しかし、単語の間にコマンドにパラメータを追加するにはどうすればよいですか?たとえば、次のようにした場合:

ls tmp

-l...その後、内容全体を再入力するか、上矢印キーを押して矢印キーを使用してカーソルを正しい位置に設定せずにコマンドにパラメータを追加したい場合がよくあります。無効に!! -lなるため動作しませんls tmp -l。 (実際にここで使用した簡単な例よりもコマンドがはるかに長いです。)

つまり、?? -lwhereが??前のコマンドを繰り返すが、-l最初の単語と2番目の単語の間に追加するものなどを探しています。


明確にするために、ls -l tmpこれは単純化された例にすぎません。実際のユースケースは同様の状況に近いです/very/long/path/to/very-long-command --with=a --very=long --parameter=list

ベストアンサー1

!!:0は前のコマンドの0番目の単語で、!!:*0番目の単語を除くすべての単語です。

!!:0 -l !!:*

あなたが探しているコマンドです。

源泉https://www.gnu.org/software/bash/manual/bash.html#Word-Designators

おすすめ記事