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中修复。