Answers:
与zsh:
vim ./**/*(.)
其他壳:
find . \( -name '.?*' -prune \) -o -type f -exec vim {} +
仅打开(非隐藏)常规文件(不打开目录,符号链接,管道,设备,门,插座...)。
vim ./**/*(D-.)
其他外壳,GNU find:
find . -xtype f -exec vim {} +
还可以打开隐藏文件(并遍历隐藏目录)和符号链接到常规文件。
和:
vim ./***/*(D-.)
其他壳:
find -L . -type f -exec vim {} +
在查看子目录时也可以遍历符号链接。
如果只需要一级子目录:
vim ./* ./*/*
请注意,./在某些文件名以-或开头的情况下,为glob加上前缀是一个好习惯+。
(当然,它们也可以find在中使用zsh。请注意,vim如果文件列表很大,它们可能会运行多个实例)。
猛烈地shopt -s extglob:
for file in **/**; do [[ -f "$file" ]] && vim "$file"; done
请注意,根据Stéphane的评论,在Bash 4.3之前,它将遵循所涵盖目录中的所有符号链接。
vim每个文件运行一个。请注意,4.3之前的bash用来遍历与的符号链接**。它已在4.3中修复。