2012-10-03 6 views
0

CACHEDIR.TAG 파일을 포함하는 모든 디렉토리를 나열하거나 그렇지 않은 디렉토리를 모두 나열해야합니다. 지금까지, 나는 그러나, test -f ... 조금 성가신 느낌과 모든 디렉토리에 호출하면 그것은 천천히 고통스럽게 만드는 특정 파일을 효율적으로 포함하는 디렉토리를 찾는 방법

find ~ -type d -exec test -f {}/CACHEDIR.TAG ';' -print 

find ~ -type d -exec test -f {}/CACHEDIR.TAG ';' -prune -o -type d -print 

함께했다. 예를 들어, 내 테스트 디렉토리에서 30 초 이상 걸리는 반면, 보통 find ~ -type d은 1 초 미만입니다 (모든 것이 메모리에 캐시 된 후 테스트 됨).

누구나 더 나은/더 빠른 해결책을 알고 있습니까?

답변

1

당신이 단계를 수행 할 수 있습니다

find ~ -type f -name CACHEDIR.TAG | sed -e 's/.CACHEDIR.TAG$//' a 
find ~ -type d > b 
grep -v -F -f a -x b 
관련 문제