문서 루트에 3개의 애플리케이션이 있다고 가정해 보겠습니다. 첫 번째는 WordPress, 두 번째는 Drupal, 세 번째는 Magento입니다.
문서 루트 아래의 모든 CMS에 대한 모든 캐시 디렉터리를 삭제하는 좋은 방법이 있는지 궁금합니다.
셸 확장(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
필요가 없습니다 . find 명령의 이 일반 버전은 또한 캐시 디렉토리가 문서 루트보다 한 수준 아래에 있지 않은 와 같은 디렉토리의 파일을 "캡처"합니다. 이것이 원하는 것인지 여부는 환경에 있는 캐시 디렉터리의 정확한 위치에 따라 다릅니다.-r
-type f
${drt}/wordpress/subdir/cache/directory/filename
GNU find(예: Linux)가 있는 경우 다음 명령을 사용하여 제거 프로세스를 단순화할 수 있습니다.
find "${drt}" -path "*/cache/*" -type f -delete