JavaScript is required

Để chỉ liệt kê danh sách các tập tin có ký tự cuối cùng trong tên là “?” ở thư mục hiện hành, ta dùng lệnh?

A.

ls *?

B.

ls*\?

C.

ls *[?]

D.

Tất cả đều đúng

Trả lời:

Đáp án đúng: D


Câu hỏi này kiểm tra kiến thức về sử dụng ký tự đại diện (wildcard) trong Linux để lọc tên tập tin.

\n

Phân tích các phương án:

\n
    \n
  • A. ls *?: Dấu ? trong shell có nghĩa là khớp với một ký tự bất kỳ. Vì vậy, lệnh này sẽ liệt kê các tập tin có ít nhất một ký tự trước dấu ? và một ký tự bất kỳ sau nó.
  • \n
  • B. ls*\\?: Dấu \\ được dùng để thoát (escape) ký tự ?. Trong trường hợp này, \\? được hiểu là ký tự ? thật sự. Lệnh này sẽ liệt kê tất cả các tập tin có tên kết thúc bằng ký tự "?" .
  • \n
  • C. ls *[?]: Dấu [] được dùng để chỉ một tập hợp các ký tự có thể xuất hiện. Trong trường hợp này, [?] có nghĩa là khớp với ký tự ?. Lệnh này tương đương với phương án B, sẽ liệt kê các tập tin có tên kết thúc bằng ký tự "?".
  • \n
\n

Vì cả B và C đều đúng, đáp án D (Tất cả đều đúng) không chính xác. Phương án B và C tương đương nhau và đều đúng.

Câu hỏi liên quan