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?
Đá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ụclogs
và sau đó thực thi lệnhtail -f
trên mỗi tập tin tìm thấy. Dấu{} +
cho phépfind
truyền nhiều tên tập tin cho một lần gọi lệnhtail -f
, hiệu quả hơn so với việc gọitail -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ụngxargs
để chuyển từng mục cho lệnhtail -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ệnhtail -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ả.