我想将一些小的app目录移动到一个名为snippet-apps
的目录中。我想使用git mv
,因为我可以将它们提交为移动而不是删除和创建。
我无法弄清楚如何使用正则表达式,所以我这样做了:
for dir in *; do
if [[ $dir != snippet-apps ]];
then git mv $dir snippet-apps/ ;
fi;
done
现在,我不是CLI和bash的主人,但是这个或使用xargs
是一个解决方案并且它有效,但我希望git mv <regex>
。
有没有办法使用git mv <regex>
?还是一个更简单的解决方案?
答案 0 :(得分:0)
提供的“git rm”仅为Pathname expansion,而非正则表达式。
您可以编写bash脚本,在工作目录下随意移动文件,然后运行“git add --all”来收集所有修改。
答案 1 :(得分:0)
您可以使用扩展的glob(需要shopt -s extglob
选项)来执行此操作:
git mv !(snippet-apps)/ snippet-apps/
!(pattern)
匹配除pattern
之外的所有内容,并且附加的斜杠确保我们只匹配目录。