在Subversion签出目录和所有子目录中,删除未列出的文件

・1 分钟阅读

 $ svn st | grep ^? | sed -e 's/^? *//' | xargs -i{} echo rm -fr "{}"

说明

如果文件名中没有空格,那么一个简单的命令就足够了,即使文件名中有空格和某些特殊字符,这个也有效。

  • svn st显示Subversion签出中的更改
  • | grep ^?只匹配以问号开头的行(=unversioned的文件)
  • | sed -e 's/^? *//' 删除行开头的问号和后面的空格字符
  • | xargs -i{} echo rm -fr"{}" 为输入中的每一行执行echo命令,其中通过将输入行插入到{}占位符中来生成命令,确认结果效果良好,并删除echo以执行rm ,

限制

命令在名称中有"(双引号)的文件时无法使用。

Hujiuxiang profile image