我需要以递归方式从svn存储库中删除不必要的文件,并且我有以下批处理文件来执行此操作:
@echo on
del /s ~*.*
del /s *.~*
del /s Thumbs.db
但是,这也是删除.svn /子文件夹下的条目。有没有办法阻止在.svn /文件夹下执行这些命令,这样就不会搞砸了?
提前致谢!
编辑:使用Bash(cygwin)的解决方案也适用于我,因为我只需要这样做一次。
答案 0 :(得分:2)
del ~*.*
del *.~*
del Thumbs.db
for /d %%a in (*) do (
if not "%%a" == ".svn" (
cd %%a
del /s ~*.*
del /s *.~*
del /s Thumbs.db
cd ..
)
)
答案 1 :(得分:1)
不知道如何在批处理文件中执行此操作,但是bash解决方案只是:
find . -name .svn -prune -o -print | egrep "/~.*|/[^/].*\.~.*$|/Thumbs.db" | xargs rm -f
虽然我建议先重定向到文件然后再注视文件。
第一个命令查找不在.svn子目录中的所有内容。第二个命令选择那些 你要删除的东西,第三个删除它们。