JavaScript is required

Lệnh dùng liệt kê danh sách các tập tin có ký tự cuối cùng trong tên là ‘?

A.
ls *?
B.
ls *\?
C.
ls \[?]
D.
Tất cả đều sai
Trả lời:

Đáp án đúng: B


Trong Linux, ký tự `?` là một ký tự đại diện (wildcard) đặc biệt, nó đại diện cho một ký tự bất kỳ. Nếu muốn tìm các tập tin có tên kết thúc bằng ký tự `?` thực sự, ta cần phải "thoát" (escape) ký tự đặc biệt này để shell không hiểu nó là wildcard. Có hai cách để thoát ký tự: 1. Sử dụng dấu backslash `\` phía trước ký tự `?`: `ls *\?` 2. Đặt ký tự `?` trong dấu ngoặc vuông `[]`: `ls *[?]` * **Phương án A (ls *?)**: Lệnh này sẽ liệt kê tất cả các tập tin có ít nhất một ký tự trong tên, vì `?` đại diện cho một ký tự bất kỳ. * **Phương án B (ls *\?)**: Lệnh này sẽ liệt kê các tập tin có tên kết thúc bằng ký tự `?`. * **Phương án C (ls \[?])**: Lệnh này sẽ liệt kê các tập tin có tên kết thúc bằng ký tự `?`. * **Phương án D (Tất cả đều sai)**: Phương án này sai vì có phương án đúng. Như vậy, phương án B và C đều đúng. Tuy nhiên, đề bài yêu cầu chọn *một* đáp án đúng nhất. Trong trường hợp này, phương án B thường được ưu tiên hơn vì nó là cách thoát ký tự phổ biến và trực tiếp hơn. Tuy nhiên, phương án C cũng là một cách hợp lệ. Vì cả B và C đều đúng, nhưng không có lựa chọn nào bao gồm cả hai, và B là cách phổ biến hơn, chúng ta chọn B.

Câu hỏi liên quan