2014-06-18 1 views
0

작업 복사본을 모두 소문자로 변환합니다. 대소 문자가 혼합 된 위치를 반복하여 모든 소문자 위치로 이동시키는 스크립트가 있습니다. svn move --parent src dst을 사용하고 있습니다.내역을 보관하면서 대소 문자가 혼합 된 폴더를 모든 소문자로 이동

IFS=$'\n' 
cd /path/to/working/copy 

for SRC in `find . -iname '*.*' -depth | grep -v '.svn'` 

do 
     DST=$(echo "$SRC" | tr '[A-Z]' '[a-z]') 


     #get directory 
     OLD_DIRECTORY="${SRC%/*}" 
     NEW_DIRECTORY=$(echo "$OLD_DIRECTORY" | tr '[A-Z]' '[a-z]') 

     if [ "${SRC}" != "${DST}" ] 
     then 
       [ ! -e "${DST}" ] && svn move --parents "${SRC}" "${DST}" || echo "${SRC} was not renamed" 
     fi 
done 

지금까지, 파일의 역사를 보존하는 것 같다

은 여기 내 전체 스크립트입니다. 그러나 폴더 기록은 아닙니다.

답변

0

다음은 내가 사용을 종료 한 이유입니다. 이렇게하면 파일의 기록은 유지되지만 폴더의 기록은 유지되지 않습니다.

IFS=$'\n' 
cd opensol2 

for SRC in `find . -depth -type f | grep -v '.svn'` 

do 
     NEW_FILE=$(echo "$SRC" | tr '[A-Z]' '[a-z]') 

     if [ "${SRC}" != "${NEW_FILE}" ] 
     then 
       [ ! -e "${NEW_FILE}" ] && svn move --parents "${SRC}" "${NEW_FILE}" || echo "${SRC} was not renamed" 
     fi 
done 
관련 문제