【发布时间】:2017-07-03 12:09:01
【问题描述】:
我想将相当多的小应用程序目录移动到一个名为 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>?还是更简单的解决方案?
【问题讨论】:
-
你有什么错误?有什么问题?
-
Git 不会在路径名上“做”正则表达式,但这种
*首先不是正则表达式:它是一个shell glob。也就是说,无论如何,使用 xargs 或简单的 shell 循环都是可行的方法。 -
(如果你想变得过于花哨:
git mv $(ls | grep -v snippet-apps) snippet-apps/也可以。这是因为git mv和普通的mv一样,允许您指定多个路径以移动到单个目录。 ) -
@torek 是的,这似乎比我过于复杂的示例要简单得多。不错。
-
@MattClark 没问题。只是在寻找更简单的方法,比如torek的例子。
标签: regex linux git bash for-loop