Find
使用 Bash 刪除文件根目錄下所有 CMS 的所有記憶體目錄的好方法
假設在文件根目錄下我有 3 個應用程序;一個是 WordPress,第二個是 Drupal,第三個是 Magento。
我想知道刪除文件根目錄下所有CMS的所有記憶體目錄的好方法是什麼。
我可以為所有(WP-CLI、Drush 和 Magento CLI)執行一個帶有 shell 擴展的腳本,但是什麼是一個好的 Bash 全域方式呢?
我認為這是刪除所有記憶體文件(
${drt}
=文件根目錄):find ${drt}/*/cache/* -type f -exec rm -rf {} \;
我自己會使用一個稍微不同的
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