我正在尝试设置一个简单的脚本来清理我的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”的目录。如果输出看起来正确,您可以添加-delete
以find
删除它们。
实际上,使用 Bash shopt -s extglob
,您还可以使用
echo rm -r !(*edit*)/
其中尾部斜杠将使其仅匹配目录并echo
仅打印命令,而不是运行它。