これまで私が使った方法は、vim */**
サブディレクトリのすべてのファイルを開くようですが、いいえ現在のディレクトリのファイルを選択し、そのディレクトリのすべてのファイルをvim *
開きます。current
しかし、現在のディレクトリ内のすべてのファイルを開く方法そしてすべてのサブディレクトリ?
答え1
そして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 {} +
サブディレクトリを表示するときにシンボリックリンクに移動することもできます。
1つのレベルのサブディレクトリのみを希望する場合:
vim ./* ./*/*
./
一部のファイル名-
がまたはで始まる場合は、globの前にプレフィックスを付けることをお勧めします+
。
(もちろん、これらのファイルfind
も見つけることができます。ファイルのリストが大きく、少なくともGNUの場合はzsh
複数のインスタンスを実行できる場合は、名前に次のバイトシーケンスを含む隠しファイル/ディレクトリをスキップすることはできません。を構成しないでください)の有効な文字です。vim
find
答え2
バッシュからshopt -s extglob
:
for file in **/**; do [[ -f "$file" ]] && vim "$file"; done
によると参考にしてください。スティーブンのコメント、Bash 4.3以前は、そのディレクトリのすべてのシンボリックリンクに従いました。