2017-05-26 51 views
0

我想知道如何刪除文件夾(它包含其他文件夾和一些文件)的所有內容文件夾及其內容如何刪除文件夾中的所有文件或子文件夾(兩者)除了使用shell腳本的2個文件夾

下面的命令保存的文件夾的conf,並刪除所有其他文件夾

發現。 ! -name '的conf' 型d -exec RM -rf {} +

我試圖管像下面

發現。 -maxdepth 1 -type d! -name'conf'|查找。 -maxdepth 1 -type d! -name 'foldername2'

,但沒有工作。

是有可能用一個命令

回答

0

您還沒有指定哪個殼您正在使用的事,但如果你使用bash再延伸的水珠可以幫助:

printf '%s\n' !(@(conf|foldername2)/) 

如果你很高興與所產生的文件和目錄的列表,然後通過同樣的水珠來rm -rf

rm -rf !(@(conf|foldername2)/) 

裏面的腳本,你可能需要啓用extglob使用shopt -s extglob。稍後,您可以將-s更改爲-u以取消選項。


如果您使用的是不同的殼,然後你可以添加一些更多的選擇,你的find命令:

find -maxdepth 1 ! -name 'conf' -a ! -name 'foldername2' -exec rm -rf {} + 

嘗試沒有-exec部分首先打印的匹配,而不是刪除一切。

+0

感謝上面的答案幫助 –

0

這可能是我的小程序實用程序可以幫助你。但願如此。

首先,你應該找到你的文件.sh
的路徑,那麼你應該找到包含這些文件主要文件夾.sh
然後刪除任何東西,除了那些文件夾

我寫drr這樣的目的,它可以做這樣的任務很容易

DRR,全稱是:刪除或基於在d語言的正則表達式重命名文件。所以你必須在使用之前編譯它。

見截圖:

how to use drr

請務必小心,因爲這不是初學者適當的工具。

相關問題