如何按名称递归查找目录并删除其内容(包括所有子目录和文件),同时保留目录本身?

tem*_*uri 7 command-line rm find

鉴于

  1. 我有一个包含EmptyMe不同级别文件夹的树状结构
  2. EmptyMe 目录包含子目录和文件

要求

  1. 清空目录的内容EmptyMe包括它们的子目录),同时保留这些目录(不删除它们)。

问题

EmptyMe从当前级别递归查找所有目录并删除其所有内容(包括子目录),同时将EmptyMe目录保留在光盘上的 Unix 命令是什么?

我的尝试

$ find . -name 'EmptyMe' -type d -exec rm -- {} +
rm: cannot remove `./a/b/c/d/EmptyMe': Is a directory
Run Code Online (Sandbox Code Playgroud)

如您所见,该命令试图删除EmptyMe,而不是其内容。

wja*_*rea 9

测试运行:

find . -path '*/EmptyMe/*'
Run Code Online (Sandbox Code Playgroud)

真正的删除:

find . -path '*/EmptyMe/*' -delete
Run Code Online (Sandbox Code Playgroud)

-path '*/EmptyMe/*'表示匹配名为EmptyMe.