首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Linux命令删除除.git文件夹以外的所有文件?

Linux命令删除除.git文件夹以外的所有文件?
EN

Stack Overflow用户
提问于 2014-03-12 08:53:36
回答 6查看 10.9K关注 0票数 42

在将新文件复制到分支中之前,我希望删除当前目录的所有content ,但 .git/ folder除外。

对此linux命令是什么?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-03-12 17:47:29

重置索引的成本很低,因此

代码语言:javascript
复制
git rm -rf .
git clean -fxd

然后,您可以重置索引(使用git reset),或者直接签出新的分支。

票数 73
EN

Stack Overflow用户

发布于 2014-03-12 09:13:19

使用查找和修剪选项。

代码语言:javascript
复制
find . -path ./.git -prune -o -exec rm -rf {} \; 2> /dev/null

编辑:两个目录.gitdist

代码语言:javascript
复制
find . -path ./.git -prune -o \( \! -path ./dist \) -exec rm -rf {} \; 2> /dev/null
票数 17
EN

Stack Overflow用户

发布于 2014-03-12 09:04:05

正如蜡笔在评论中提到的,简单的解决方案是将.git移出目录,删除所有内容,然后再将其移回目录。但是如果你想用花哨的方式去做,find会支持你的:

代码语言:javascript
复制
find -not -path "./.git/*" -not -name ".git" | grep git
find -not -path "./.git/*" -not -name ".git" -delete

我放在这里的第一行是因为在运行-delete之前,对于find,我总是想要仔细检查,以确保它找到了我认为的东西。

编辑:有一段脑筋急转弯,不是从我的终端拷贝过来的。

Edit2:增加-not -name ".git",防止删除.git目录,并抑制错误。根据find尝试删除内容的顺序,它可能会在非空目录上失败。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22339837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档