2017-04-16 38 views
-1

以下命令将删除当前目录中的所有文件和文件夹,除了那些提及的内容。如何排除隐藏文件夹被删除

find . -mindepth 1 ! -path '*testResults*' ! -path '*artifacts*' ! -path '*node_modules*' -exec rm -r {} + 2>/dev/null 

我的问题是:如何也排除.git隐藏文件夹被删除?

+0

我认为你需要使用'-path'和'-prune' ......看看https://unix.stackexchange.com/questions/97558/find-合并路径和修剪到排除文件和目录帮助 – Sundeep

回答

1

使用! -name '.git'

find . -mindepth 1 ! -path '*testResults*' ... ! -name '.git' ... 

您使用! -path,但不知道! -name表明,你只是选择一些随机的东西从互联网上,而不是在寻找的信息在正确的地方的事实:男人页!所以先走一步,类型:

man find 
+0

事实上,你承担的东西是可爱的。我确实阅读过https://ss64.com/bash/find.html的部分内容,但内容太详尽,我错过了一些东西。 Horray帮忙的人? –

+0

看起来我的假设是正确的。而不是,find命令的手册页是* not *太详尽。 'find'只有3个以上的选项。另一方面,我确实希望我假设你低估了我给你的答案是错误的,因为这是个人差的东西,我在6年的时间里没有看到它。 – hek2mgl

+0

是的,我低估了你的答案,因为虽然它是正确的,但你的态度会反弹。成长一些礼节。 –

相关问题