Tôi biết làm thế nào để lặp lại một lệnh và thêm văn bản sau nó với !!như vậy:
ls -l
!! tmp
Dòng thứ hai mở rộng đến ls -l tmp.
Nhưng nếu tôi muốn thêm tham số vào lệnh ở giữa các từ thì sao? Ví dụ: nếu tôi đã làm như sau:
ls tmp
... sau đó tôi thường muốn thêm -ltham số vào lệnh nhưng không nhập lại toàn bộ hoặc nhấn và sử dụng các phím mũi tên để đặt con trỏ đến đúng vị trí. !! -lkhông hoạt động vì nó trở nên ls tmp -lkhông hợp lệ. (Trong thực tế, lệnh dài hơn nhiều so với ví dụ đơn giản tôi đã sử dụng ở đây.)
Nói cách khác Tôi đang tìm một cái gì đó giống như ?? -lnơi ??là cái gì đó lặp đi lặp lại lệnh trước đó nhưng thêm vào -lở giữa những lời đầu tiên và thứ hai.
Chỉ cần làm cho nó rõ ràng, ls -l tmpchỉ là một ví dụ đơn giản. Trường hợp sử dụng thực tế gần với một cái gì đó như /very/long/path/to/very-long-command --with=a --very=long --parameter=list.
!!:0 -l /tmp. Ở đây 0có nghĩa là từ đầu tiên, tức là. lệnh chính nó. Tất nhiên bạn cũng có thể làm !!:0 -l !!:1nếu bạn không muốn lặp lại /tmp.
^ ^ -l ^trao đổispacechospace -l spacehoặc^s^s -l^(nhưngls tmp -lcũng hoàn toàn khả thi)