回答:
と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 ./* ./*/*
./
一部のファイル名が-
またはで始まる場合に備えて、グロブにプレフィックスを付けることは良い習慣であることに注意してください+
。
(もちろん、これらfind
もで機能しzsh
ます。vim
ファイルのリストが大きい場合、複数のインスタンスが実行される可能性があることに注意してください)。
バッシュでshopt -s extglob
:
for file in **/**; do [[ -f "$file" ]] && vim "$file"; done
Stéphaneのコメントに従って、Bash 4.3より前のバージョンでは、対象となるディレクトリ内のシンボリックリンクを追跡することに注意してください。
vim
ただし、ファイルごとに1つ実行されます。4.3より前のbashは、を使用してシンボリックリンクをトラバースするために使用されていたことに注意してください**
。4.3で修正されました。