无需cd至子目录,如何删除指定目录下深度≥2的子目录?
无需cd至子目录即可实现目标删除操作
你完全不需要cd到/a/b目录,直接在基准目录/a下就能完成需求,调整find命令即可:
- 使用绝对路径执行:
find /a -mindepth 2 -maxdepth 2 -type d -mtime +30 -exec rm -rf {} + - 如果当前已经在
/a目录下,也可以用相对路径:find . -mindepth 2 -maxdepth 2 -type d -mtime +30 -exec rm -rf {} +
原理说明
find命令通过-mindepth 2 -maxdepth 2精准定位到/a下的第二级子目录(也就是/a/b/c这类目录),然后通过-exec rm -rf {} +直接删除这些目录本身——rm -rf会自动递归删除目标目录下的所有层级内容(比如/a/b/c/d/e都会被连带删除),同时不会触动/a/b这个上级目录,完全符合你的需求。
内容的提问来源于stack exchange,提问作者user16454406
相关产品推荐
相关产品推荐

