JavaScript is required

Để tìm tên tập tin không chứa chuỗi "error" trong thư mục logs, câu lệnh nào là phù hợp?

A.

grep -L 'error' logs/*

B.

grep -lv 'error' logs/*

C.

find logs/ -type f | xargs grep -L 'error'

D.

ls logs/ | grep -v 'error'

Trả lời:

Đáp án đúng: A


Phân tích câu hỏi:

Câu hỏi yêu cầu tìm các tập tin trong thư mục logskhông chứa chuỗi error.

Phân tích các lựa chọn:

  • A. grep -L 'error' logs/*: Lệnh này sử dụng tùy chọn -L của grep, có nghĩa là in ra tên của các tập tin không chứa chuỗi tìm kiếm (trong trường hợp này là 'error'). logs/* chỉ định tất cả các tập tin trong thư mục logs. Đây là một lựa chọn đúng.
  • B. grep -lv 'error' logs/*: Lệnh này sử dụng cả hai tùy chọn -l-v. -l in ra tên của các tập tin chứa chuỗi tìm kiếm, và -v đảo ngược kết quả tìm kiếm (in ra các dòng không chứa chuỗi tìm kiếm). Khi kết hợp cả hai, nó sẽ in ra tên của các file mà mỗi file có ít nhất một dòng không chứa 'error'. Cách này không hoàn toàn đúng vì nó vẫn in ra các file mà có một số dòng chứa 'error'.
  • C. find logs/ -type f | xargs grep -L 'error': Lệnh này sử dụng find để tìm tất cả các tập tin thông thường (-type f) trong thư mục logs, sau đó chuyển danh sách các tập tin này cho grep -L thông qua xargs. Tương tự như lựa chọn A, lệnh này cũng in ra tên của các tập tin không chứa chuỗi 'error'. Tuy nhiên, cách này phức tạp hơn và không cần thiết vì có thể dùng trực tiếp grep -L 'error' logs/*. Mặc dù cho ra kết quả tương tự, nhưng lựa chọn A tối ưu hơn.
  • D. ls logs/ | grep -v 'error': 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 grep -v 'error' để lọc ra các mục có tên không chứa chuỗi 'error'. Lệnh này chỉ lọc tên của các mục, chứ không kiểm tra nội dung của các tập tin. Vì vậy, nếu có một tập tin tên là abc.log chứa chuỗi error thì nó vẫn sẽ được hiển thị.

Kết luận:

Lựa chọn A là cách đơn giản và hiệu quả nhất để tìm các tập tin không chứa chuỗi "error" trong thư mục logs. Mặc dù C cũng có thể cho ra kết quả tương tự, nhưng A trực quan và ngắn gọn hơn.

Câu hỏi liên quan