Linux & SVN : KEEP 디렉토리 구조를 제외한 모든 버전의 파일을 제거하는 방법은 .svn dirs를 무시합니까?

내 저장소에서 모든 버전이 지정된 파일을 제거하고 싶지만 버전이 지정된 디렉토리 구조를 유지하십시오. 분명히 모든 .svn 디렉토리를 그대로 유지하고 싶습니다.

즉, 디렉토리 구조 자체를 손상시키지 않고 작업 복사본의 디렉토리 구조를 완전히 비우고 싶습니다.

예를 들어,이 구조에서 파일을 제거하십시오.

dir/
    .svn/
        [files]
    svsubdir1/
        file1
        .svn/
            [files]
    subdir2/
        file2
        file3
        file4
        .svn/
            [files]
        subsubdir1/
            file5
            .svn/
                [files]

결과는 다음과 같습니다.

dir/
    .svn/
        [files]
    svsubdir1/
        .svn/
            [files]
    subdir2/
        .svn/
            [files]
        subsubdir1/
            .svn/
                [files]

나는 일종의 find명령이나 이것을 달성하기 위해 무언가를 찾고 있는데 명령을 구성하는 데 문제가 있습니다. 도와 주셔서 감사합니다!



답변

find dir/ -path '*/.svn' -prune -o -type f -print

청구서에 맞아야합니다 (대부분은 찾기 맨 페이지에서 제공 -path). 덜 파이프하고 체크 아웃하십시오. 그것이하는 일은 먼저 찾은 것입니다 (경로는 .svn으로 끝나고이 디렉토리로 되돌아 가지 않습니다) 또는 (파일 인 경우 인쇄하십시오).

좋아 보인다면

find dir/ -path '*/.svn' -prune -o -type f -exec rm {} +

+ 버전은 모든 파일을 하나의 rm 명령으로 묶습니다. 편집증이라면 트리 ( cp -a dir/ otherdir/) 의 백업을 먼저 유지하십시오.


답변

찾기 . -not-경로 "* /. svn / *"및 -type f 및 -exec / bin / rm '{}'\;

트릭을해야합니다.


답변