본질적으로 중복될 수 있습니다.이 문제, 그러나 내가 아는 한 제공된 Perl 스크립트는 내 경우에는 작동하지 않습니다. 여러 패턴을 찾는 질문도 많이 나오는데, 구글에서는 '패턴 파일'과 '파일명 패턴'을 구분하지 않는 것 같아서 검색이 의외로 어렵습니다.
나는 따르고 싶다
git status --ignored --porcelain | awk '{print $2}'
저장소가 아닌 폴더에 있습니다. 그건,다음 제약 조건을 사용하여 (지정된) 파일에 나열된 패턴과 일치하는 파일 및 디렉터리를 나열하고 싶습니다.:
- 사용하는 모드입니다gitignore 구문, 특히 빈 줄과 주석은 스크립트에서 무시되어야 합니다.
- 스크립트는 현재 작업 디렉터리에서 시작되어야 합니다.
- 스크립트는아니요일치하는 디렉터리(즉, 일치 항목은 항상 리프임)로 이동하거나 기호 링크로 이동합니다.
간단한 예는 다음과 같습니다.
$> cat .gitignore
*.DS_Store*
tmp/
a/**/foo
$> tree -a .
.
|-- .DS_store
|-- .gitignore
|-- a
| |-- b
| | |-- foo
| | | `-- file
| | `-- tmp
| |-- foo
| `-- tmp
| `-- file
`-- c
|-- .DS_Store?
`-- foo
5 directories, 8 files
$> git status --ignored --porcelain | awk '{print $2}'
.DS_store
a/b/foo/
a/foo
a/tmp/
c/.DS_Store?
가능하다면 osx와 linux 모두에서 실행되고 posix-egrep 형식의 패턴을 고려하도록 확장될 수 있는 솔루션에 특히 관심이 있습니다. 마지막 부분에서는 이와 같은 작업이 find . -print | egrep -f patternfile
작동하지만 일치하는 디렉터리로 이동하여 작업이 매우 느려질 수 있습니다.