JavaScript is required

Lệnh nào dùng để liệt kê danh sách tất cả các tập tin có tên phần mở rộng không chứa các ký tự trong khoảng từ "x" đến "w" trong thư mục hiện hành:

A.

ls *.!x | .!w

B.

ls *.[!x-w]

C.

ls ! *.[xz]

D.

ls *.[!xw]

Trả lời:

Đáp án đúng: D


Câu hỏi yêu cầu liệt kê các tập tin có phần mở rộng không chứa các ký tự từ 'x' đến 'w' (tức là v, w, x). * **Phương án A:** `ls *.!x | .!w` không đúng cú pháp. Toán tử `!` thường được dùng trong shell để phủ định, nhưng cách dùng này không chính xác trong việc lọc tên tập tin. Ngoài ra, việc dùng pipe `|` sẽ chuyển kết quả của `ls *.!x` sang lệnh `.!w`, là một cách sử dụng sai. * **Phương án B:** `ls *.[!x-w]` đúng. Cú pháp `[!x-w]` trong shell có nghĩa là bất kỳ ký tự nào KHÔNG nằm trong khoảng từ x đến w. Do đó, nó sẽ liệt kê các tập tin có phần mở rộng chứa ký tự không thuộc khoảng này. * **Phương án C:** `ls ! *.[xz]` sai. Cú pháp `! *.[xz]` không hợp lệ để lọc các tập tin. Dấu `!` ở đây không được sử dụng đúng cách để phủ định. * **Phương án D:** `ls *.[!xw]` đúng nhưng không đầy đủ bằng đáp án B. Lệnh này liệt kê các file có phần mở rộng mà ký tự cuối không phải x và w, tuy nhiên yêu cầu của đề là phần mở rộng không chứa ký tự trong khoảng x đến w (bao gồm cả v). Do đó, phương án B đúng và đầy đủ hơn. Vậy, đáp án đúng nhất là B.

Câu hỏi liên quan