删除指定路径中所有不含“edit”字样的文件夹?

删除指定路径中所有不含“edit”字样的文件夹?

我正在尝试设置一个简单的脚本来清理我的working folder.其working folder结构如下:

Project 1
Project 1 [edited]
Project 2
Project 2 [edited]
Project 3
Project 3 [edited]
...

所有项目文件夹仅包含文件。目标是删除working folder该文件夹中的所有文件夹不是[edited]名义上有。

答案1

使用 GNU find,类似的东西

find . -maxdepth 1 -mindepth 1  ! -name "*edit*"

应匹配当前目录中名称中没有“edit”的文件,并打印名称。当然,您可以添加例如-type d -iname "*project*"以仅匹配名称中带有“project”的目录。如果输出看起来正确,您可以添加-deletefind删除它们。

实际上,使用 Bash shopt -s extglob,您还可以使用

echo rm -r !(*edit*)/

其中尾部斜杠将使其仅匹配目录并echo仅打印命令,而不是运行它。

相关内容