Có thể làm theo một lệnh (chạy liên tục)? như người ta sẽ theo dõi một tập tin bằng đuôi -f?


10

Tôi có một tập lệnh tạo tập tin 'Chi tiết.out'. Tôi biết rằng tập lệnh được hoàn thành bất cứ khi nào tập tin chứa một số dòng nhất định (khoảng 21025). Vì vậy, tôi thấy mình đang ngồi tại dấu nhắc lệnh đang chạy:

[me@somewhere myDir]$ wc -l */Detail.out
  21025 A/Detail.out
  21025 B/Detail.out
  21025 C/Detail.out
  12995 D/Detail.out
  10652 E/Detail.out
   3481 F/Detail.out
  21027 G/Detail.out
  21025 H/Detail.out
  21025 I/Detail.out
  ...   ...

Tôi đã từng tail -fxem một tập tin cụ thể, nhưng tôi muốn theo dõi đầu ra của wc -l */Detail.outlệnh được hiển thị ở trên. Điều này có thể không? Tôi hiện đang sử dụng tcshtrong Ubuntu 11.04 nếu có vấn đề.

Câu trả lời:


18

Hãy thử watchlệnh, mặc dù tôi nghi ngờ mọi người đã viết phiên bản của họ lúc này hay lúc khác. (Phiên bản giá rẻ là while :; do clear; "$@"; sleep 5; done.)


0

Không chắc chắn nếu bạn biết điều đó nhưng bạn cũng có thể chuyển hướng đầu ra của một chương trình sang một tệp. Xem http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html Vì vậy, một cách khác có thể là chuyển hướng đầu ra sang một tệp và sau đó sử dụng đuôi trên tệp đó như bạn đã sử dụng để làm .

$ find . -name "Detail.out" | xargs wc -l >> detail-out-list.txt

Và trong một Terminal khác, bạn có thể chạy $ tail -f detail-out-list.txtnhư bạn đã quen.

Như Celeb lưu ý rằng để lại một số tệp xung quanh có thể những gì bạn muốn (để kiểm tra thêm tệp đó hoặc có một số lịch sử) hay không và không có gì được thực hiện định kỳ như watchđối với bạn.


Điều này hoàn toàn không giải quyết được câu hỏi của OP, nó chỉ chuyển công việc sang một lệnh khác và yêu cầu một lớp công cụ hoàn toàn mới để chạy và dọn dẹp sau đó.
Caleb

@Caleb: Tôi không rõ tại sao đây là một câu trả lời khủng khiếp như vậy. Tệp đầu ra có thể ở / tmp, vì vậy không cần phải dọn sạch. Tôi không nghĩ câu hỏi là "làm thế nào tôi có thể chạy lệnh nhiều lần?" nhưng "làm thế nào tôi có thể làm theo một lệnh được chạy liên tục?". Theo như tôi có thể thấy, có vẻ như câu trả lời này cho câu hỏi của OP ... không sao khi đọc kỹ hơn, tôi đoán câu hỏi này không rõ ràng như hiện tại được đăng: does "(chạy liên tục)" nghĩa là "(đang được chạy liên tục ) "hoặc" (có nghĩa là, làm thế nào để tôi chạy nó nhiều lần?) "?
iconoclast
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.