Chạy lại nhiều lệnh lịch sử


22

Hãy tưởng tượng bạn vừa chạy một tá lệnh. Nói...

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

Tôi biết tôi có thể chạy lại chúng được nối với nhau !-12 && !-11 && !-10 && (and so on) && !!nếu chúng tình cờ vừa được chạy (không chắc) hoặc !10000 && !10001 && !10002 && (and so on), nhưng có cách nào đơn giản hơn là gõ tay từng số lịch sử bằng một tiếng nổ và dấu?

Có lẽ có một số loại phạm vi mà tôi không biết trong bash?

ví dụ !{10000-10012}# một cái gì đó như thế này, chỉ hoạt động.

Câu trả lời:


23

Đây là những gì fclệnh dành cho.

fc -12 -1

hoặc là

fc 10000 10012

Đây không phải là điều bạn muốn vì nó sẽ khởi chạy trình soạn thảo trước, nhưng đó có lẽ là một điều tốt vì nó cho bạn cơ hội kiểm tra xem bạn có các lệnh chính xác hay không và thậm chí chỉnh sửa chúng bằng tất cả các khả năng của trình soạn thảo yêu thích của bạn. Khi bạn lưu các thay đổi và thoát khỏi trình chỉnh sửa, các lệnh sẽ được chạy.


À! Rực rỡ! fc. Sửa lỗi lệnh. Có ý nghĩa!
inanutshellus

1
Để tránh khởi chạy trình chỉnh sửa (nguy hiểm!), Bạn có thể sử dụngfc -e true -12 -1
BingsF

không có sẵn trong Ubuntu
okwap

1
@okwap, vô nghĩa. Đó là POSIX được chỉ định và chắc chắn có sẵn trong Ubuntu. (Đó là một vỏ tích hợp, mặc dù-là nó phải được-vì vậy nếu bạn đang tìm kiếm trong /binbạn sẽ không tìm thấy nó.)
Wildcard
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.