2014-02-22 4 views
0

나는이처럼 보이는 나무가 있습니다쉘 : 1을 제외한 모든 하위 디렉토리에서 파일의 와일드 카드를 가져 옵니까?

src/ 
├── engine/ 
├── python/ 
└── scenes/ 

내가 src의 모든 서브 디렉토리에있는 파일의 목록을 얻을 수 ls src/**/*를 사용할 수 있다는 것을 알고,하지만 난 모든 파일에 출력하지 않으 src/engine/ 디렉토리 와일드 카드에서 engine/을 제외 할 수있는 간결한 방법이 있습니까?

미리 감사드립니다.

답변

1

질문에 디렉토리 Python에 대한 참조가 포함되어 있으므로 Python을 사용한다고 가정합니다. 그렇지 않다면이 대답을 무시하십시오. 명령 줄에서 파이썬 2.6

Formic을 사용할 수 있습니다

formic 당신의 목표를 달성하기 위해 다음과 같이 사용할 수 있습니다 (당신이 /path/to/src에서 현재 가정 :

formic -e "/engine/**" 

-e 옵션 하나를 제외 이 경우 /engine/**은 현재 작업 디렉토리에서 engine 디렉토리의 모든 것을 직접 제외합니다.

파이썬에서

:

import formic 
fileset = formic.FileSet(include="**", exclude="/engine/**", directory="/path/to/src") 

개미가 작업 디렉토리에 대한 상대 경로를 사용 -이 src의 부모가 될 수 있지만, 나는 완전한 경로를 사용하는 것이 좋습니다하지 않을 경우. 위의 예에서 검색은 src에서 시작하고 모든 내용 (**)을 포함합니다.

Formic은 Git/Mercurial/CVS/SVN 작업 디렉토리와 같이 파일 묶음이 제외되는 Ant의 규칙을 따릅니다. 추가 인수 default_excludes=false을 사용하여이 동작을 끌 수 있습니다.

문자열이 아닌 목록을 전달하여 여러 포함 및 제외를 지정할 수 있습니다.

공개 - 나는이 패키지의 저자입니다.

관련 문제