複数の履歴コマンドを再実行します


22

十数個のコマンドを実行しただけだと想像してください。いう...

$ cd foo/    # history cmd #10000 (my history is very long)
$ ... more commands ...
$ cd ../     # history cmd #10012 

私は、彼らがと連結再実行することができます知っている!-12 && !-11 && !-10 && (and so on) && !!、彼らが持って起こる場合だけとなって実行(そう)かを!10000 && !10001 && !10002 && (and so on)、しかし、強打とアンパサンドで、各履歴番号を手は、入力するよりも簡単な方法はありますか?

おそらく私がbashで気づいていない範囲の種類がありますか?

たとえば、!{10000-10012}#このようなもので、動作しているだけです。

回答:


23

これがfcコマンドの目的です。

fc -12 -1

または

fc 10000 10012

これは最初にエディターを起動するため、望んでいるものではありませんが、正しいコマンドがあることを再確認し、お気に入りのエディターのすべての機能を使用して編集する機会さえ与えられるので、おそらく良いことです。変更を保存してエディターを終了すると、コマンドが実行されます。


あははは!ブリリアント!fc。修正コマンド。理にかなっています!
イナナッツシェル

1
(!危険)エディタを起動しないようにするには、使用することができますfc -e true -12 -1
BingsF

ubuntuでは利用不可
-okwap

1
@okwap、ナンセンス。それはだPOSIXは、指定されたとUbuntuで確かに利用できます。(ただし、シェルは組み込まれていますが、そうでなければならないため、探している/bin場合は見つかりません。)
ワイルドカード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.