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: B


Câu hỏi yêu cầu liệt kê danh sách các tập tin có phần mở rộng không chứa các ký tự từ 'x' đến 'w' trong thư mục hiện tại. Điều này có nghĩa là phần mở rộng của tập tin không được chứa bất kỳ ký tự nào trong khoảng 'x', 'y', 'z', và 'w'. * **Phương án A: `ls *.!x | .!w`**: Lệnh này không đúng cú pháp và không thực hiện được mục đích của câu hỏi. Nó cố gắng sử dụng `!x` và `!w` nhưng không đúng cách để loại trừ các ký tự trong shell. * **Phương án B: `ls *.[!x-w]`**: Lệnh này chính xác. `[!x-w]` là một character class trong shell, biểu thị bất kỳ ký tự nào không nằm trong khoảng từ 'x' đến 'w'. Do đó, `*.[!x-w]` sẽ khớp với tất cả các tập tin có phần mở rộng chỉ có một ký tự và ký tự đó không nằm trong khoảng 'x' đến 'w'. * **Phương án C: `ls ! *.[xz]`**: Lệnh này không đúng cú pháp và không hoạt động như mong đợi. Nó cố gắng phủ định nhưng không đúng cách. * **Phương án D: `ls *.[!xw]`**: Lệnh này gần đúng, nhưng nó chỉ loại trừ ký tự 'x' và 'w', chứ không loại trừ toàn bộ khoảng 'x' đến 'w' như yêu cầu của đề bài. Do đó, nó không hoàn toàn chính xác. Vậy, phương án B là đáp án đúng nhất.

Câu hỏi liên quan