使用 Bash 删除文档根目录下所有 CMS 的所有缓存目录的好方法

使用 Bash 删除文档根目录下所有 CMS 的所有缓存目录的好方法

假设在文档根目录下我有 3 个应用程序;第一个是 WordPress,第二个是 Drupal,第三个是 Magento。

我想知道有什么好方法可以删除文档根目录下所有CMS的所有缓存目录。

我可以运行一个带有 shell 扩展的脚本(WP-CLI、Drush 和 Magento CLI),但是什么是好的 Bash 全局方式呢?

我想到这个来删除所有缓存文件(${drt}=文档根目录):

find ${drt}/*/cache/* -type f -exec rm -rf {} \;

答案1

我自己会使用稍微不同的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

相关内容