2 3 bảng các xâu ký tự:
9.3 Các ký tự đặc biệt
9.3.1 Tạo một tên với các metacharacter
Một số ký tự có ý nghĩa đặc biệt trong dòng lệnh Shell, người ta gọi các ký tự đó là metacharacter. Chúng cho phép tạo ra các tên file ta quan tâm trong một thư mục.
* thay thế một xâu ký tự bất kỳ/ ? thay thế một ký tự bất kỳ.
[] thay thế một trong những ký tự trong ngoặc vuông. [!] thay thế một ký tự không có trong ngoặc vuông.
Muốn dùng một ký tự kiểu metacharacter để thể hiện một tên mà không bị hiệu ứng đặc biệt của nó, ta cần cho vào trước nó một ký tự “\” (backslash).
Chú ý: các metacharacter dùng trong Shell không cùng ý nghĩa với các metacharacter dùng trong các chương trình soạn thảo.
Thí dụ:
$echo * hiển thị tất cả các file trong thư mục.
$echo *.c hiển thị tất cả các file có tên kết thúc bằng .c $echo \* * $ls a.out try.o file1 file1.c file5 fileA $ls *.c file1.c
$ls *.* a.out try.o file1.c $ls *.? try.o file1.c $ls file[0-9] file1 file5
Chú ý: Các ký tự metacharacter chỉ có tác dụng trong phần của dòng lệnh, chúng không có tác dụng trong phần đổi hướng.
Thí dụ:
$echo hello > *.c
$ls *.c liệt kê các file có tên kết thúc bằng .c $ls \*.c liệt kê các file có tên *.c
9.3.2 Ký tự ~(tilde)
Ký tự ~ thay thế tên thư mục tiếp nhận Hai ký tự ~+ thay thế tên thư mục đang làm việc.
Hai ký tự ~_ thay thế tên thư mục ta đã ở trong ngay trước khi chuyển sang thư mục hiện hành.
Thí dụ:
$echo ~ xem tên thư mục tiếp nhận /users/user1
$cd /etc chuyển đến /etc $pwd
/etc
$cd trở về thư mục tiếp nhận $pwd
/users/user1
$echo ~_ xem tên thư mục làm việc ngay trước khi chuyển đến thư mục hiện hành
/etc
$echo ~+ xem tên thư mục làm việc /users/user1