2017-05-26 55 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

请务必小心,因为这不是初学者适当的工具。

相关问题