linux 用svn update更新,经常会遇到这个问题,如:
svn: Valid UTF-8 data
(hex:)
followed by invalid UTF-8 sequence
(hex: d5 d5 c6 ac)
这是由于在目录中有中文的文件名,而这个文件名确是用gb2312编码的,只能一个一个目录找,然后删掉它。
这里列出两个方法,一个方法用户找文件,然后直接删掉;另外一个则是找哪个目录下有这个非法文件名
1. 查找中文文件名
find ./ -regexptype "posix-pegrep" -regexp "*/[^a-z0-9]+txt" -exec rm {} \;
这个方法在找到文件后直接删除。如果想看看是哪些文件,则把 -exec rm {} \; 去掉。
2. 查找含有中文的目录
for f in `find . ! -name '.' -type d -prune | egrep -v 'svn'`; do echo $f; svn update $f; done;
这个方法是个偷懒的方法,在更新每个目录前,先 显示是那个目录:-)
阅读(5413) | 评论(0) | 转发(0) |