Program Tip

Windows에서 모든 .svn 디렉토리를 재귀 적으로 제거하는 명령

programtip 2020. 10. 22. 22:22
반응형

Windows에서 모든 .svn 디렉토리를 재귀 적으로 제거하는 명령


하위 디렉토리가 많은 디렉토리가 있습니다. 각 폴더에는 하위 버전 폴더 (.svn)가 있습니다.

각 폴더와 하위 디렉토리를 통과하여 .svn 폴더를 삭제하는 명령이 창에 있습니까?

아니면 스크립트를 생성해야합니까, 아니면 수동으로해야합니까?


사용 svn export이없는 새로운 "깨끗한"디렉토리 구조에 서브 버전 작업 사본을 내보낼 명령을 .svn디렉토리를.


다음 줄로 litte 배치 파일을 만들고 .svn 디렉토리가있는 상위 폴더에서 실행합니다.

FOR /F "tokens=*" %%G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q "%%G"

명령 프롬프트에서 바로 아래 줄을 실행할 수도 있습니다.

FOR /F "tokens=*" %G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q "%G"

PowerShell에서이 작업을 수행하십시오.

참고 : 이것은 재귀 적이므로 올바른 디렉토리에 있는지 확인하십시오!

gci -fil '.svn' -r -force | ri -r -force

다음은 내 소스 트리 정리 스크립트의 나머지입니다.

gci -fil 'bin' -r -force | ri -r -force
gci -fil 'obj' -r -force | ri -r -force
gci -fil '_ReSharper*' -r -force | ri -r -force
gci -fil '*.suo' -r -force | ri -r -force
gci -fil '*.user' -r -force | ri -r -force

Windows에서 .svn 이라는 하위 폴더를 모두 삭제하려면 다음 내용으로 배치 파일을 만듭니다.

for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *.svn') do (
rd /s /q "%%i"
)

del_All_Dot_SVN_Folders.cmd 파일에 저장하십시오 . 그것을 실행하십시오. 끝났습니다.

http://www.axelscript.com/2008/03/11/delete-all-svn-files-in-windows/ 덕분에

위의 코드에는 .svn이 있지만 링크의 코드에는 * svn 만 있으므로 .svn이 실수로 원하지 않는 효과를 내지 않도록하는 것이 좋습니다.


파일 탐색기의 검색 상자에 .svn을 입력 한 다음 모든 검색 결과를 선택하고 삭제하면됩니다 (JB Nizet의 설명 참조). 물론이 방법은 예를 들어 svn 아카이브를 구성 할 때 obj 및 bin 디렉토리를 빠르게 삭제하는 데에도 사용할 수 있습니다.

OP는 명령 줄 솔루션을 요청했지만, 그는 또한 Windows 사용을 표시하고 수동 삭제를 고려했기 때문에 파일 탐색기 방법을 고려할 수 있습니다. 특히 가장 빠른 방법이고 svn export와 같은 '도구'에 의존하지 않기 때문입니다.

OP는 이미 수락 된 답변을 선택했지만이 답변은 다른 사람들에게 여전히 유용 할 수 있습니다. 적어도 명령 줄을 선호하고이 게시물을 통해 검색 상자에 대해 처음 배운 오랜 기간의 Linux / Windows 사용자 인 저에게 유용했습니다. :-)

검색 창이있는 탐색기 스크린 샷


나는 이것에 대답하기에는 너무 늦었지만 일식과 svn 플러그인이 이클립스에 설치된 경우 쉬운 방법이 있다고 생각합니다. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Team-> disconnect로 이동합니다. 첫 번째 옵션을 선택하는 팝업이 열립니다 : '파일 시스템에서 SVN 메타 정보도 삭제합니다.' 이렇게하면 .svn 폴더 만 제거하는 동안 가끔 잊을 수있는 svn 속성 파일과 함께 모든 SVN 폴더가 자동으로 제거됩니다!


중요한 점으로, 을 실행 하여 .svn 폴더를 삭제하려면 find 명령이 방금 삭제 된 디렉토리에 들어가고 예와 같은 어리석은 오류 메시지를 표시하는 것을 방지하기 위해 -depth 인수 가 필요할 수 있습니다.

"find: ./.svn: No such file or directory"

이 오류를 제거하려면 다음과 같이 find 명령을 사용할 수 있습니다.

cd [dir_to_delete_svn_folders]
find . -depth -name .svn -exec rm -fr {} \;

참고 URL : https://stackoverflow.com/questions/4889619/command-to-recursively-remove-all-svn-directories-on-windows

반응형