Menu
CoddyTech

Kết hợp ký tự đại diện

Thuộc phần Kiến thức cơ bản trong hành trình Terminal của Coddy. Bài học 28 trên 82.

Sức mạnh thực sự của ký tự đại diện thể hiện khi bạn kết hợp chúng với nhau. Bạn có thể kết hợp *, ? và [] trong cùng một mẫu để khớp tệp thật chính xác.

Với hệ thống tệp sau:

photo_1.jpg
photo_2.jpg
photo_10.jpg
photo_1.png
photo_2.png
report_1.txt
report_2.txt
notes.txt

Kết hợp * và []:

Liệt kê tất cả các tệp hình ảnh (cả .jpg và .png):

ls *.{jpg,png}    # sử dụng mở rộng dấu ngoặc nhọn (brace expansion)
ls *.[jp]*        # khớp với .jpg, .png, .jpeg, v.v.

Kết hợp ? và []:

Chỉ liệt kê các tệp ảnh có tên chứa một chữ số:

ls photo_[0-9].jpg   # chỉ khớp với photo_1.jpg và photo_2.jpg

Kết hợp cả ba:

Khớp với mọi tệp báo cáo có một chữ số:

ls *_[0-9].txt     # khớp với report_1.txt và report_2.txt

Khớp các tệp bắt đầu bằng một chữ cái bất kỳ, theo sau là các ký tự cụ thể:

ls [pr]*_?.txt    # bắt đầu bằng p hoặc r, tiếp theo là chuỗi bất kỳ, dấu gạch dưới, một ký tự, rồi .txt

Dùng ký tự đại diện với các lệnh khác:

Di chuyển tất cả ảnh jpg có một chữ số vào một thư mục:

mv photo_[0-9].jpg archive/

Xóa tất cả tệp .log trong mọi thư mục con:

rm */*.log
challenge icon

Thử thách

Dễ

Dùng kết hợp các ký tự đại diện để chỉ liệt kê các tệp ảnh .jpg có số gồm một chữ số, chẳng hạn photo_1.jpg và photo_2.jpg, nhưng không gồm photo_10.jpg hay bất kỳ tệp .png nào.

Gợi ý: Kết hợp văn bản cố định photo_, một khoảng trong dấu ngoặc vuông gồm các chữ số đơn và phần mở rộng .jpg thành một mẫu.

Tự làm thử

Terminal
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức cơ bản

Tự luyện tập: Playground Terminal