Câu trả lời:
Với zsh
:
vim ./**/*(.)
Vỏ khác:
find . \( -name '.?*' -prune \) -o -type f -exec vim {} +
Để chỉ mở các tệp thông thường (không ẩn) (không phải thư mục, liên kết tượng trưng, đường ống, thiết bị, cửa ra vào, ổ cắm ...).
vim ./**/*(D-.)
Các shell khác, GNU find
:
find . -xtype f -exec vim {} +
Để cũng mở các tệp ẩn (và duyệt qua các thư mục ẩn) và liên kết tượng trưng đến các tệp thông thường.
Và:
vim ./***/*(D-.)
vỏ khác:
find -L . -type f -exec vim {} +
để đi qua các liên kết tượng trưng khi nhìn vào thư mục con.
Nếu bạn chỉ muốn một cấp thư mục con:
vim ./* ./*/*
Lưu ý rằng đó là một thói quen tốt để thêm tiền tố ./
vào trong trường hợp một số tên tệp bắt đầu bằng -
hoặc +
.
(tất nhiên find
những cái đó cũng hoạt động zsh
. Lưu ý rằng chúng có thể chạy một số trường hợp vim
nếu danh sách các tệp lớn).
Trong bash với shopt -s extglob
:
for file in **/**; do [[ -f "$file" ]] && vim "$file"; done
Lưu ý rằng, theo nhận xét của Stéphane , trước Bash 4.3, điều này sẽ theo bất kỳ liên kết tượng trưng nào trong các thư mục được đề cập.
vim
cho mỗi tập tin mặc dù. Lưu ý rằng bash trước 4.3 được sử dụng để duyệt qua các liên kết tượng trưng với**
. Nó đã được sửa trong 4.3.