Jalankan kembali beberapa perintah riwayat

22

Bayangkan Anda baru saja menjalankan selusin perintah. Mengatakan...

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

Aku tahu aku bisa kembali menjalankan mereka digabungkan dengan !-12 && !-11 && !-10 && (and so on) && !!jika mereka kebetulan memiliki hanya telah run (tidak mungkin) atau !10000 && !10001 && !10002 && (and so on), tetapi ada cara yang lebih sederhana daripada tangan mengetik setiap nomor sejarah dengan bang dan ampersands?

Apakah mungkin ada beberapa hal jangkauan yang saya tidak sadari di bash?

misal !{10000-10012}# sesuatu seperti ini, hanya berfungsi.

inanutshellus
sumber

Jawaban:

23

Ini untuk apa fcperintah itu.

fc -12 -1

atau

fc 10000 10012

Ini bukan yang Anda inginkan karena akan meluncurkan editor terlebih dahulu, tapi itu mungkin hal yang baik karena memberi Anda kesempatan untuk memeriksa ulang apakah Anda memiliki perintah yang benar dan bahkan mengeditnya menggunakan semua kemampuan editor favorit Anda. Setelah Anda menyimpan perubahan dan keluar dari editor, perintah akan dijalankan.

jw013
sumber
Ah hah! Cemerlang! fc. Perbaiki Perintah. Masuk akal!
inanutshellus
1
Untuk menghindari peluncuran editor (berbahaya!), Anda dapat menggunakanfc -e true -12 -1
BingsF
tidak tersedia di ubuntu
okwap
1
@ wap, omong kosong. Ini POSIX ditentukan dan tentu saja tersedia di Ubuntu. (Tapi ini adalah built-in shell - sebagaimana mestinya - jadi jika Anda mencari di dalam /binAnda tidak akan menemukannya.)
Wildcard