user9303970 Asked: 2018-02-05 12:15:16 +0800 CST2018-02-05 12:15:16 +0800 CST 2018-02-05 12:15:16 +0800 CST 使用 Bash 删除文档根目录下所有 CMS 的所有缓存目录的好方法 772 假设在文档根目录下我有 3 个应用程序;一是 WordPress,二是 Drupal,三是 Magento。 我不知道有什么好方法可以删除文档根目录下所有CMS 的所有缓存目录。 我可以为所有人(WP-CLI、Drush 和 Magento CLI)运行一个带有 shell 扩展的脚本,但是什么才是好的 Bash 全局方式? 我想到了这个来删除所有缓存的文件(${drt}=文档根目录): find ${drt}/*/cache/* -type f -exec rm -rf {} \; find rm 1 个回答 Voted Best Answer Jeff Schaller 2018-02-05T17:37:18+08:002018-02-05T17:37:18+08:00 我自己会使用稍微不同的find命令: find "${drt}" -path "*/cache/*" -type f -exec rm -f {} \; ...这样find就完成了递归目录树的工作;你的例子有 bash 命令行扩展所有的*,给出find多个起始路径。另请注意,您不需要-r递归删除文件(您明确要求使用-type f)。find 命令的这个通用版本还将“捕获”目录中的文件,例如${drt}/wordpress/subdir/cache/directory/filename,其中缓存目录不在文档根目录下的一级。这是否是您想要的取决于缓存目录在您的环境中的确切位置。 如果你有 GNU find(例如在 Linux 上),你可以通过以下方式简化删除: find "${drt}" -path "*/cache/*" -type f -delete
我自己会使用稍微不同的
find
命令:...这样
find
就完成了递归目录树的工作;你的例子有 bash 命令行扩展所有的*
,给出find
多个起始路径。另请注意,您不需要-r
递归删除文件(您明确要求使用-type f
)。find 命令的这个通用版本还将“捕获”目录中的文件,例如${drt}/wordpress/subdir/cache/directory/filename
,其中缓存目录不在文档根目录下的一级。这是否是您想要的取决于缓存目录在您的环境中的确切位置。如果你有 GNU find(例如在 Linux 上),你可以通过以下方式简化删除: