2013-03-05 1 views

ответ

3

Ваша команда не работает, потому что вы указываете каталог для git. Ваша оболочка делает правильное расширение, но в конце концов мерзавец получает git rm firstdirectory/somedir/thirddirectory, что мерзавец не нравится (git rm ожидает файлы)

Чтобы сделать командную работу, используйте -r флаг, то мерзавец принимает каталог:

git rm -r firstdirectory/*/thirddirectory 
0

Расширение выражения glob, которое вы описываете, не выполняется git, а оболочкой. Вы можете видеть это, если вы делаете что-то вроде echo *. Команда получает список аргументов, которые являются именами файлов, а не одним аргументом со звездочкой.

В вашем случае find . -ipath, вероятно, является наиболее полезным способом определения путей, в которых вы нуждаетесь. Вы можете добавить -type d, чтобы просто выбрать каталоги. find имеет несколько вариантов выбора подходящих объектов. Затем вы можете подать его в xargs для работы с git. Например:

find firstdirectory -ipath 'firstdirectory/*/thirddirectory' | xargs git rm