반응형
찾기 명령을 사용하지만 두 디렉토리의 파일 제외
로 끝나는 파일을 찾고 싶지만 및 폴더의 _peaks.bed
파일은 제외합니다 .tmp
scripts
내 명령은 다음과 같습니다.
find . -type f \( -name "*_peaks.bed" ! -name "*tmp*" ! -name "*scripts*" \)
하지만 작동하지 않았습니다. tmp
및 script
폴더 의 파일 은 계속 표시됩니다.
누구든지 이것에 대한 아이디어가 있습니까?
다음을 사용하여 지정할 수있는 방법은 다음과 find
같습니다.
find . -type f -name "*_peaks.bed" ! -path "./tmp/*" ! -path "./scripts/*"
설명:
find .
-현재 작업 디렉토리에서 찾기 시작 (기본적으로 재귀 적으로)-type f
-find
결과에 파일 만 표시 하도록 지정-name "*_peaks.bed"
-이름으로 끝나는 파일을 찾습니다._peaks.bed
! -path "./tmp/*"
-경로가 다음으로 시작하는 모든 결과 제외./tmp/
! -path "./scripts/*"
-경로가 다음으로 시작하는 모든 결과를 제외합니다../scripts/
솔루션 테스트 :
$ mkdir a b c d e
$ touch a/1 b/2 c/3 d/4 e/5 e/a e/b
$ find . -type f ! -path "./a/*" ! -path "./b/*"
./d/4
./c/3
./e/a
./e/b
./e/5
당신은 꽤 가까웠고 -name
옵션 -path
은 전체 경로를 고려하는 기본 이름 만 고려합니다 =)
할 수있는 한 가지 방법이 있습니다 ...
find . -type f -name "*_peaks.bed" | egrep -v "^(./tmp/|./scripts/)"
다음과 같은 시도
find . \( -type f -name \*_peaks.bed -print \) -or \( -type d -and \( -name tmp -or -name scripts \) -and -prune \)
그리고 내가 그것을 조금 잘못 이해하더라도 너무 놀라지 마십시오. 목표가 exec (인쇄 대신) 인 경우에는 대신 대체하십시오.
나를 위해이 솔루션은 find 명령 exec에서 작동하지 않았으므로 이유를 모르겠습니다. 그래서 내 솔루션은
find . -type f -path "./a/*" -prune -o -path "./b/*" -prune -o -exec gzip -f -v {} \;
설명 : sampson-chen과 동일하며
-prune-진행 경로 무시 ...
-o-일치하지 않으면 결과를 인쇄합니다 (디렉토리를 정리하고 나머지 결과를 인쇄).
18:12 $ mkdir a b c d e
18:13 $ touch a/1 b/2 c/3 d/4 e/5 e/a e/b
18:13 $ find . -type f -path "./a/*" -prune -o -path "./b/*" -prune -o -exec gzip -f -v {} \;
gzip: . is a directory -- ignored
gzip: ./a is a directory -- ignored
gzip: ./b is a directory -- ignored
gzip: ./c is a directory -- ignored
./c/3: 0.0% -- replaced with ./c/3.gz
gzip: ./d is a directory -- ignored
./d/4: 0.0% -- replaced with ./d/4.gz
gzip: ./e is a directory -- ignored
./e/5: 0.0% -- replaced with ./e/5.gz
./e/a: 0.0% -- replaced with ./e/a.gz
./e/b: 0.0% -- replaced with ./e/b.gz
아래에서 시도해 볼 수 있습니다.
find ./ ! \( -path ./tmp -prune \) ! \( -path ./scripts -prune \) -type f -name '*_peaks.bed'
참고 URL : https://stackoverflow.com/questions/14132210/use-find-command-but-exclude-files-in-two-directories
반응형
'Program Tip' 카테고리의 다른 글
파이썬의 time.sleep ()은 얼마나 정확합니까? (0) | 2020.10.04 |
---|---|
android.gms.maps.MapFragment를 인스턴스화 할 수 없습니다. (0) | 2020.10.04 |
"int * nums = {5, 2, 1, 4}"로 인해 세그멘테이션 오류가 발생합니다. (0) | 2020.10.04 |
solr 쿼리에서 OR 및 NOT 사용 (0) | 2020.10.04 |
Ruby에서 배열의 마지막 요소를 얻는 방법은 무엇입니까? (0) | 2020.10.04 |