Bạn cũng có thể sử dụng Mở rộng Lịch sử để chỉ các từ trên dòng lệnh hiện tại:
convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf !#:$:r.png
- Trình chỉ định sự kiện
!#
đề cập đến dòng lệnh được gõ cho đến nay
- Trình chỉ định từ chỉ
$
từ cuối cùng (trước khi mở rộng)
- Công cụ sửa đổi
r
loại bỏ phần mở rộng tập tin. Điều này cũng đánh dấu sự kết thúc của văn bản, được thay thế khi mở rộng lịch sử xảy ra.
.png
là phần mở rộng mới. Điều này không thuộc về bản mở rộng.
Khi dòng này được chạy, !#:$:r
được thay thế bằng tên của tệp pdf của bạn trừ phần mở rộng, do đó tạo lệnh từ câu hỏi:
convert -trim -density 400 this_is_a_very_long_filename_of_my_pdf_file.pdf this_is_a_very_long_filename_of_my_pdf_file.png
Dòng này sau đó được thực hiện trực tiếp.
Nếu bạn muốn kiểm tra lệnh sau khi mở rộng lịch sử, trước khi thực hiện, hãy sử dụng
setopt histverify
Điều này sẽ tải lại dòng mở rộng vào bộ đệm chỉnh sửa thay vì thực thi nó.
Lưu ý: Không giống như bất kỳ sự mở rộng nào khác, việc mở rộng lịch sử được thực hiện trước khi lệnh được lưu vào lịch sử. Vì vậy, echo !#
sẽ xuất hiện như echo echo
và không như echo !#
trong của bạn $HISTFILE
.