我想知道我会传递给rm -rf
除了.git/
文件夹之外的所有选项。我正在阅读手册页但是我对你可以传入的选项感到困惑。如果我想删除除.git/
以外的所有选项,那么该命令是什么?
答案 0 :(得分:1)
一种可能的解决方案是使用find
查找目录中不 .git
然后rm
的所有项目:
> find . -mindepth 1 -maxdepth 1 ! -name .git -print0| xargs -0 rm -rf;
答案 1 :(得分:1)
使用bash:
shopt -s extglob
rm -rf !(.git)
warning http://pix.toile-libre.org/upload/original/1377510865.png 在运行此命令之前,请注意保持在良好的目录中。
答案 2 :(得分:1)
您可以使用bash GLOBIGNORE
变量删除除特定文件之外的所有文件
来自bash(1)页面:
A colon-separated list of patterns defining the set of filenames to be ignored
by pathname expansion. If a filename matched by a pathname expansion pattern
also matches one of the patterns in GLOBIGNORE, it is removed from the list
of matches.
要删除除zip和iso文件以外的所有文件,请按如下方式设置GLOBIGNORE:
GLOBIGNORE=*.git
rm -rf *
unset GLOBIGNORE
PS。仅适用于BASH