我可以通过
移动未版本控制的文件mv * subfolder/
和版本化文件通过
svn mv * subfolder/
(除了subfolder
中的*
)
但如果其中一半是版本化而另一半不是文件,我怎么能移动文件?
答案 0 :(得分:0)
我会做一个find . \! \( -name .svn -prune \)
并将其传递给while read
(假设没有包含制表符或\n
个字符的目录或文件,请将其设为简单。然后,对该文件执行svn mv
。如果失败,你知道它是一个无版本的文件,你可以在它上面做一个简单的mv
:
$ find . \! \( -name .svn -prune \) | while read file
do
if ! svn mv $file $new_location
then
mv $file $new_location
fi
done
实际的代码比这更棘手。如果您移动文件的目录存在,该怎么办?如果它不存在怎么办?这是您正在移动的目录还是文件?所有这些都会影响您移动文件的确切方式。
真正的问题是为什么你突然发现自己这样做了。所有这些未版本控制的文件都来自哪里,为什么它们也必须移动到工作区中的另一个目录?
答案 1 :(得分:0)
您可以执行以下操作:
for f in svn ls .; do svn mv $f subfolder; done
mv * subfolder
您仍然必须处理subfolder
。 .svn
与*
不匹配,但您可能需要处理名称以点开头的文件和目录。