4 Làm quen với hệ thống tập tin ext3fs
5.7.7 Khai triển các mẫu tên tập tin và thư mục (Pathname Ex-
Phép thế tên đường dẫn và tập tin (Pathname expansion) sử dụng để chỉ nhờ một mẫu nhỏ gọn mà có thể chỉ ra vài tập tin (hay thư mục), tương ứng với mẫu này. Sau khi phân chia từ, và nếu như không đưa ra tùy chọn-f, thìbashsẽ tìm kiếm trong từng từ của dòng lệnh các ký tự*, ?,và[. Nếu tìm thấy từ với một hay vài ký tự như vậy, thì từ này sẽ được xem như một mẫu, và cần thay thế bởi các từ trong danh sách đường dẫn, tương ứng với mẫu này. Nếu như không tìm thấy tên tương ứng với mẫu, và biến nullglob không được đưa ra, thì từ sẽ không thay đổi, tức là các ký tự đặc biệt bị mất giá trị và hiểu như các ký tự thường. Nếu như biến này được xác định, mà đường dẫn tương ứng với mẫu không tìm thấy, thì từ sẽ bị xóa khỏi dòng lệnh. Các ký tự dùng để tạo mẫu có các giá trị trong bảng5.4.
Bảng 5.4: Các ký tự tạo mẫu
Ký tự Quy luật thay thế
* Tương ứng với bất kỳ dòng ký tự nào, kể cả dòng rỗng. Ví dụ,v*.txt sẽ được thay thế bởivnoss.txt, vnlinux.txtvà vntex.txt (nếu các tập tin này tồn tại), và *.png sẽ tương ứng tất cả các tập tin có phần mở rộng png (tập tin đồ họa hai chiều).
? Tương ứng bất ký một ký tự đơn nào. Ví dụ, mẫu file?.txt sẽ được thaythế bởi các tên tệp sau file1.txt, file2.txt, file3.txt, và filea.txt (nếu chúng tồn tại), nhưngfile23.txtthì không.
[...] Tương ứng bất kỳ ký tự nào trong số các ký tự nằm trong dấu ngoặc vuông này. Cặp ký tự, phân cách nhau bởidấu trừ(-), ví dục-f, biểu thị một dãy; bất ký ký tự nào, theo từ điển, nằm giữa hai ký tự này, kể cả hai ký tự tạo ra dãy (cvàftrong ví dụ) cũng tương ứng với mẫu. Nếu ký tự đầu tiên trong ngoặc vuông là hay ˆ, thì mẫu (ở vị trí này) sẽ tương ứng tất cả các ký tự,khôngđược chỉ ra trong ngo
Mẫu tên tập tin rất thường xuyên sử dụng trong dòng lệnh có chứals. Hãy tưởng tượng là bạn muốn xem thông tin của một thư mục, trong đó có chứa một số lượng lớn các tập tin đủ các dạng, ví dụ, tập tin hình ảnh, phim với dạng gif, jpeg, avi, v.v. . . . Để thu được thông tin chỉ của tập tin dạng jpeg, có thể dùng câu lệnh
[user]$ ls *.jpg
Nếu trong thư mục có nhiều tập tin, mà tên của chúng là các số gồm bốn chữ số (thư mục /proc là một ví dụ+), thì lệnh sau chỉ đưa ra danh sách các tập tin có số từ 0500 đến 0999:
[user]$ ls -l 0[5-9]??