Bash를 사용하여 문서 루트 디렉터리 아래에 있는 모든 CMS의 모든 캐시 디렉터리를 삭제하는 좋은 방법

Bash를 사용하여 문서 루트 디렉터리 아래에 있는 모든 CMS의 모든 캐시 디렉터리를 삭제하는 좋은 방법

문서 루트에 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

관련 정보