2013-03-05 4 views
5

*.jpg, *.*과 같이 파일명을 지정하려면 *을 사용할 수 있지만 디렉토리는 어떨까요?디렉토리 이름과 일치하는 경로는

모든 디렉토리를 지정할 수있는 방법이 있습니까?

이 작동하지 않습니다

git rm firstdirectory/*/thirddirectory 

*는 "모든 디렉토리"효과를하지 않습니다.

답변

3

git 할 디렉토리를 지정했기 때문에 명령이 작동하지 않습니다. 쉘이 올바른 확장을 수행했지만 결국 자식이있는 자식은

-r 플래그를 사용하여 명령 작업을하려면 (git rm 파일을 예상) 좋아하지 않는다, git rm firstdirectory/somedir/thirddirectory를 수신 한 후 자식은 받아 디렉토리 :

git rm -r firstdirectory/*/thirddirectory 
0

설명하는 glob 표현 확장은 git이 아니라 셸에서 수행합니다. echo * 같은 것을하면 이것을 볼 수 있습니다. 이 명령은 별표가있는 단일 인수가 아닌 파일 이름 인 인수 목록을 수신합니다.

귀하의 경우에는 find . -ipath이 아마도 필요한 경로를 식별하는 가장 유용한 방법 일 것입니다. 디렉토리를 가져 오는 데 -type d을 추가 할 수 있습니다. find에는 일치하는 객체를 선택하기위한 여러 가지 옵션이 있습니다. 그런 다음 이것을 xargs에 입력하여 git으로 작업 할 수 있습니다. 예 :

find firstdirectory -ipath 'firstdirectory/*/thirddirectory' | xargs git rm 
관련 문제