Tôi đang cố gắng di chuyển từ bash
đến fish
.
Là những gì fish
's analog để shopt
? Tôi đang cố gắng bắt chước dòng này từ .bashrc
:
shopt -s dotglob # for mv * see hidden files
Tôi đang cố gắng di chuyển từ bash
đến fish
.
Là những gì fish
's analog để shopt
? Tôi đang cố gắng bắt chước dòng này từ .bashrc
:
shopt -s dotglob # for mv * see hidden files
Câu trả lời:
Đây là cố ý. Hầu hết thời gian người dùng không muốn vô tình khớp các tệp ẩn mà không nhìn thấy ls
(không có -a
). Thông thường, các tập tin được ẩn vì một lý do, không chỉ để troll bạn. Ngoài ra, nếu *
phù hợp với các tệp bị ẩn, việc khớp các tệp không bị ẩn sẽ quá khó khăn.
Tuy nhiên, không giống như bash shopt -s dotglob
là không cần thiết để phù hợp với các tập tin ẩn. Trong bash, shopt -s dotglob
là cách duy nhất để khớp mọi tệp trong thư mục mà không vô tình khớp .
hoặc ..
. Tuy nhiên, vỏ cá không bao giờ có thể khớp .
hoặc ..
với các khối, do đó không phải là vấn đề (nếu bạn thực sự cần phải khớp .
hoặc ..
vì một lý do ngớ ngẩn nào đó, chỉ cần nói rõ ràng). Ngoài ra, cá cố gắng tránh có các lựa chọn theo thiết kế, vì vậy nó không có dotglob
.
Để khớp với từng tệp trong thư mục, bạn có thể muốn sử dụng mở rộng khung để phát hiện các tệp bắt đầu bằng dấu chấm và những tệp không có. {.,}
là mở rộng khung phù hợp với dấu chấm có thể tồn tại hoặc không tồn tại. Ngôi sao sau khi nó phù hợp với tất cả mọi thứ. Bởi vì các khối trong cá không thể khớp .
hoặc ..
, đoạn mã sau khớp với tất cả mọi thứ trừ hai thư mục đó (bash rất khớp, nếu bạn sử dụng mã bên dưới)
cat {.,}*
{,.}*
thủ công.