Find

使用 Bash 刪除文件根目錄下所有 CMS 的所有記憶體目錄的好方法

  • February 5, 2018

假設在文件根目錄下我有 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

引用自:https://unix.stackexchange.com/questions/421879