JavaScript is required

Câu lệnh nào sau đây dùng để xem những dòng cuối cùng của tất cả các tập tin log và theo dõi thay đổi mới nhất của chúng?

A.

tail -f logs/.log

B.

cat logs/.log | tail -f

C.

find logs -type f -exec tail -f {} +

D.

ls logs/ | xargs -I {} tail -f {}

Trả lời:

Đáp án đúng: A


Câu hỏi này kiểm tra kiến thức về các lệnh Linux cơ bản, đặc biệt là lệnh tail và cách sử dụng nó để theo dõi các tập tin log.

Phân tích các đáp án:

  • A. tail -f logs/*.log: Lệnh này có thể hoạt động nếu trong thư mục logs chỉ chứa các file .log. Tuy nhiên, dấu * đại diện cho tất cả các file .log trong thư mục logs và tham số -f cho phép theo dõi các thay đổi mới nhất của các file này. Đây là một phương án khả thi. Lưu ý rằng nếu không có file .log nào hoặc có thư mục con tên là *.log, lệnh có thể không hoạt động như mong đợi.

  • B. cat logs/*.log | tail -f: Lệnh này sẽ in nội dung của tất cả các tập tin log ra rồi chuyển cho tail -f. tail -f sẽ chỉ theo dõi output nhận được, không theo dõi trực tiếp các file log. Điều này có nghĩa là bạn chỉ thấy nội dung ban đầu của file, không thấy các thay đổi tiếp theo.

  • C. find logs -type f -exec tail -f {} +: Lệnh này sử dụng find để tìm tất cả các tập tin (-type f) trong thư mục logs và sau đó thực thi lệnh tail -f trên mỗi tập tin tìm thấy. Dấu {} + cho phép find truyền nhiều tên tập tin cho một lần gọi lệnh tail -f, hiệu quả hơn so với việc gọi tail -f cho từng tập tin riêng lẻ. Đây là một cách tiếp cận tốt để theo dõi nhiều tập tin log.

  • D. ls logs/ | xargs -I {} tail -f {}: Lệnh này liệt kê tất cả các mục (tập tin và thư mục) trong thư mục logs/, sau đó sử dụng xargs để chuyển từng mục cho lệnh tail -f. Vấn đề là ls có thể bao gồm cả thư mục, và tail -f không được thiết kế để làm việc với thư mục. Hơn nữa, cách này kém hiệu quả hơn so với phương án C vì mỗi tập tin sẽ được xử lý bằng một lệnh tail -f riêng biệt.

Kết luận:

Phương án C là đáp án chính xác nhất vì nó sử dụng find để tìm tất cả các tập tin trong thư mục logs và sau đó sử dụng tail -f một cách hiệu quả để theo dõi tất cả chúng. Phương án A có thể hoạt động nhưng kém linh hoạt hơn và có thể không hoạt động đúng nếu có thư mục con .log. Phương án B chỉ hiển thị nội dung ban đầu của các file và không theo dõi các thay đổi. Phương án D có thể gây ra lỗi nếu có thư mục trong logs và kém hiệu quả.

Câu hỏi liên quan