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.txtKế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.jpgKế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.txtKhớ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 .txtDù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 */*.logThử 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.jpgthành một mẫu.
Tự làm thử
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
4Thư mục
Tạo thư mụcSao chép thư mụcDi chuyển và đổi tên thư mụcXóa thư mụcÔn tập: thao tác với thư mục2Điều hướng
In đường dẫn thư mục hiện tạiLiệt kê tệpChuyển thư mụcĐường dẫn tuyệt đối và tương đốiThư mục chính và thư mục gốcÔn tập: tìm đường8Chuyển hướng
Đầu ra chuẩnGhi đè vào tệpGhi thêm vào tệpĐầu vào chuẩnLỗi chuẩnÔn tập: Công cụ tạo nhật ký6Ký tự đại diện và mẫu
Ký tự đại diện dấu saoKý tự đại diện dấu hỏiKý tự đại diện trong ngoặc vuôngKết hợp ký tự đại diệnÔn tập: thao tác có chọn lọc9Đường ống
Đường ống là gìNối hai lệnh bằng đường ốngNối nhiều lệnh bằng đường ốngDùng đường ống với grepÔn tập: luồng xử lý dữ liệuTự luyện tập: Playground Terminal