Câu trả lời:
Trong bash, theo thứ tự này:
GLOBIGNORE=.
shopt -u dotglob
Khi GLOBIGNORE được đặt ,. và .. được tự động bỏ qua, vì vậy bạn thực sự không cần phải đặt chúng trong GLOBIGNORE, nhưng nếu bạn không có gì khác để bỏ qua thì bạn sẽ không có gì để đặt.
Mỗi khi bạn đặt GLOBIGNORE thành giá trị khác null, bash sẽ bật tùy chọn dotglob
, do đó bạn sẽ cần tắt nó sau đó; nếu không, bash sẽ mở rộng *
để bao gồm các tệp bắt đầu bằng dấu chấm.
.
và ..
không foo/.
và foo/..
. Bạn có thể muốn sử dụng GLOBIGNORE=.:*/.:*/..
để làm cho công việc này với tên đường dẫn quá.
Trên một hệ thống lạ, nơi tôi có quá ít thời gian để kiểm tra các cài đặt đang sử dụng (như GLOBIGNORE), tôi sử dụng mẫu hoàn hảo sau đây:
command .??*
.
và ..
bất kể môi trường..a
dotglob
bật, vì vậy thiết lậpGLOBIGNORE
âm thanh hoàn hảo.