2013-03-05 11 views

Odpowiedz

3

Twoje polecenie nie działa, ponieważ określasz katalog do git. Twoja powłoka robi prawidłowej ekspansji, ale w końcu odbiera git rm firstdirectory/somedir/thirddirectory git, który nie lubi git (git rm spodziewa plików)

Aby kontynuować pracę poleceń użyć flagi -r, a następnie git akceptuje katalogu:

git rm -r firstdirectory/*/thirddirectory 
0

Opisana ekspresja globalna nie jest wykonywana przez git, ale przez powłokę. Możesz to zobaczyć, jeśli zrobisz coś takiego, jak echo *. Komenda otrzymuje listę argumentów będących nazwami plików - a nie pojedynczy argument z gwiazdką.

W twoim przypadku, find . -ipath jest prawdopodobnie najbardziej użytecznym sposobem identyfikacji potrzebnych ścieżek. Możesz dodać -type d, aby po prostu pobrać katalogi. find ma wiele opcji wyboru pasujących obiektów. Następnie można go przekazać do xargs do pracy z git. Na przykład:

find firstdirectory -ipath 'firstdirectory/*/thirddirectory' | xargs git rm 
Powiązane problemy