Nếu bạn không ngại chạy lại lệnh: nhấn Upvà nối một xargs
lệnh. Hoặc sử dụng thay thế lịch sử và chạy
!! | xargs vim # won't work with file names containing \'" or whitespace
!! | xargs -d \\n vim # GNU only (Linux, Cygwin)
Có một cách nhẹ nhàng để lưu đầu ra của lệnh hoạt động trong ksh và zsh nhưng không phải trong bash (nó yêu cầu phía đầu ra của một đường ống phải được thực thi trong vỏ cha). Đưa lệnh vào hàm K
(định nghĩa zsh bên dưới), mà k xuất ra đầu ra của nó trong biến $K
.
function K {
K=("${(@f)$(tee /dev/fd/3)}") 3>&1;
}
find … |K
vim $K
Tự động lưu đầu ra của mỗi lệnh là không thực sự có thể với vỏ, bạn cần chạy lệnh trong một thiết bị đầu cuối mô phỏng. Bạn có thể làm điều đó bằng cách chạy bên trong script
(một tiện ích BSD, nhưng có sẵn trên hầu hết các thông báo bao gồm cả Linux và Solaris), giúp lưu tất cả đầu ra của phiên của bạn thông qua một tệp (vẫn còn một chút nỗ lực để phát hiện dấu nhắc cuối cùng trong bản in ).