Uma boa maneira de excluir todos os diretórios de cache de todos os CMSs sob a raiz do documento com o Bash

0

Diga que, sob o document root, tenho 3 aplicativos; Um é o WordPress, o segundo é o Drupal e o terceiro é o Magento.

Eu me pergunto o que é uma boa maneira de excluir todos os diretórios de cache de todos os CMSs sob o diretório raiz.

Eu poderia executar um script com extensões de shell para todos (WP-CLI, Drush e Magento CLI), mas qual seria uma boa maneira global de Bash?

Pensei nisso para excluir todos os arquivos em cache ( ${drt} = document root):

find ${drt}/*/cache/* -type f -exec rm -rf {} \;
    
por user9303970 04.02.2018 / 21:15

1 resposta

2

Eu usaria um comando find um pouco diferente, eu mesmo:

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

... para que find faça o trabalho de recursão pela árvore de diretórios; seu exemplo tem a linha de comando bash expandindo todos os * , fornecendo find de vários caminhos iniciais. Observe também que você não precisa -r recursivamente remover arquivos (você está solicitando explicitamente arquivos com -type f ). Essa versão generalizada do comando find também "captura" arquivos que estão em diretórios, como ${drt}/wordpress/subdir/cache/directory/filename , em que o diretório de cache não é um nível abaixo da raiz do documento. Se isso é algo que você quer ou não, depende exatamente de onde os diretórios de cache estão em seu ambiente.

Se você tiver o GNU find (por exemplo, no Linux), você pode simplificar a remoção com:

find "${drt}" -path "*/cache/*" -type f -delete
    
por 05.02.2018 / 02:37