2017-04-16 63 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

是的,我低估了你的答案,因爲雖然它是正確的,但你的態度會反彈。成長一些禮節。 –