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" (tức là không chứa các ký tự v, w, x) trong thư mục hiện hành. Trong Linux, để chỉ định một tập hợp các ký tự loại trừ trong globbing (mở rộng tên tập tin), ta sử dụng cú pháp `[!...]`. Do đó, phương án B là phương án đúng, vì nó sử dụng `[!x-w]` để chỉ các ký tự *không* nằm trong khoảng từ 'x' đến 'w'. Các phương án khác không đúng cú pháp hoặc không thực hiện đúng yêu cầu. * **Phương án A: `ls *.!x | .!w`** Sai cú pháp. Lệnh này sẽ tìm các file có phần mở rộng bắt đầu bằng ký tự bất kỳ (`.`) và sau đó là `!x`, sau đó chuyển kết quả cho lệnh `.!w` (không hợp lệ). * **Phương án C: `ls ! *.[xz]`** Sai cú pháp. `!` không hoạt động như một toán tử phủ định trong globbing theo cách này. Lệnh này có thể gây ra lỗi. * **Phương án D: `ls *.[!xw]`** Gần đúng, nhưng không chính xác. `[!xw]` chỉ loại trừ ký tự x và w, nhưng vẫn chấp nhận ký tự v. Đề bài yêu cầu loại trừ tất cả các ký tự từ x đến w, tức là x, y và z (nếu có). Phương án B chính xác hơn vì nó loại trừ tất cả ký tự trong khoảng từ x đến w.

Câu hỏi liên quan