git では、 、 などのファイル名を指定するために使用できますが*
、ディレクトリはどうでしょうか?*.jpg
*.*
すべてのディレクトリを指定する方法はありますか?
これは機能しません:
git rm firstdirectory/*/thirddirectory
「すべての*
ディレクトリ」効果はありません。
git にディレクトリを指定しているため、コマンドが機能しません。あなたのシェルは正しい展開を行いますが、最終的に git は を受け取りgit rm firstdirectory/somedir/thirddirectory
ますgit rm
。
コマンドを機能させるには、-r
フラグを使用してから、git がディレクトリを受け入れます。
git rm -r firstdirectory/*/thirddirectory
あなたが説明するグロブ式の展開は、gitではなくシェルによって実行されます。のようなことをすると、これを見ることができますecho *
。このコマンドは、アスタリスクが付いた単一の引数ではなく、ファイル名である引数のリストを受け取ります。
あなたの場合、find . -ipath
おそらく必要なパスを特定する最も便利な方法です。-type d
ディレクトリを取得するためだけに a を追加することもできます。find には、一致するオブジェクトを選択するための多数のオプションがあります。xargs
これをにフィードして、 を操作できますgit
。例えば:
find firstdirectory -ipath 'firstdirectory/*/thirddirectory' | xargs git rm