2009-12-07 2 views
1

Cygwin Windows 시스템에서 xargs를 사용하여 로컬로 삭제 된 SVN 파일을 제거하려고합니다.cygwin에서 XArgs 명령이 파일 경로를 변경하는 중임

svn status | grep '^\!' | sed 's/! *//' 

weblings - webplatform \ 공급 업체 \ 부두 - 7.0.0.pre5의 \ 컨텍스트-가능 \ 테스트 annotations.d \ META-:

나는 다음과 같은 출력을 생성하고 다음 명령을 실행 INF \ MANIFEST.MF weblings - webplatform \ 공급 업체 \ 부두 - 7.0.0.pre5의 \ 컨텍스트-가능 \ 테스트 annotations.d의 \ WEB-INF \ 부두 - env.xml 그런

나는 실행 다음 명령을 실행하면 다음 오류가 발생합니다.

svn status | grep '^\!' | sed 's/! *//' | xargs -I% svn rm % 


svn: 'weblings-webplatformvendorjetty-7.0.0.pre5contexts-availabletest-annotations.dMETA-INFMANIFEST.MF' does not exist 

cygpath를 사용하여 svn 상태 경로를 변환하려고 시도했지만 아무 것도 수행하지 않습니다.

+0

흠. Cygwin에서'svn status'에서'/'를 얻습니다. – retracile

+0

하는 SVN 사용중인 : 를 광산은 "svn을하는" "/ cygdrive/C/프로그램 파일 (x 86)/콜 랩넷은/서브 버전 클라이언트/SVN은" – Dougnukem

+0

광산에/usr/빈/svn'', 그래서이다 cygwin에서 하나. – retracile

답변

3

cygpath를 사용하여 경로를 유닉스 형식으로 변경하는 것은 제 생각에는 작동해야합니다. '\'는 리눅스 세계에서 이스케이프 문자로, xargs가 마치 하나처럼 처리하는 것처럼 보입니다. 같은 뭔가 : 당신이 svn status의 출력에 / 년대를 얻을 수 있도록

svn status | grep '^\!' | sed 's/! *//' | cygpath -m | xargs -I% svn rm % 
0

/usr/bin/svn로 (필요한 경우를 설치) Cygwin에서 svn를 지정합니다. 하지만 조심해! 1.4, 1.5, 1.6과 같은 다른 svn 버전을 혼합하고 싶지 않거나 더 재미있을 것입니다.

0

을 s37을 사용하여 /으로 변경하십시오. (슬래시는 Windows API 및 거의 모든 Windows 프로그램에서 작동하므로 특별히 작동하지 않으려면 거부해야합니다.) 다른 사용자와 동일한 버전의 svn을 계속 사용하려는 경우 (예 : GUI 사용) 데이터 손상에 대해 걱정할 필요가 없습니다.

cygwin의 svn 버전을 사용하여 모든 것을 변경하십시오.

루트 문제는 xargs를이 데이터를 재 해석되는이 Cygwin에서 작동하거나 (다음을 수행하는) 쉘을 통해 모든 것을 통과해야 어떻게이기 때문인지, 잘 모르겠어요 (그리고 수 없습니다 내일까지 시험). 내가 제대로 문제를 이해한다면

0

, 나는 하나의 작은 조정을 할 다음 xargs를 문에, 대체 변수 주위에 따옴표를 추가

        xargs -I% svn rm "%" 

그렇지 않으면 공백이 포함 된 주어진 경로가 말해 줄 것이다 rm을 사용하여 두 개 이상의 파일을 삭제하십시오. I.E. rm에 입력으로 전달 된 c : \ Cygwin \ My Stuff과 같은 줄이

rm c : \ Cygwin \ My가됩니다. rm 물건

관련 문제