재귀적으로 삭제하지만 .gitignore 파일은 유지합니다.

재귀적으로 삭제하지만 .gitignore 파일은 유지합니다.

SU에서 여러 가지 방법을 시도했지만 이 작업을 수행할 수 없습니다. 여러 파일과 디렉터리가 포함된 폴더(예: /var/www/tmp/)가 있습니다. /var/www/tmp에 있는 숨겨진 파일을 제외하고 이 디렉터리의 모든 파일과 폴더를 삭제하고 싶습니다. 어떻게 해야 합니까?

감사해요!

편집: 명확하게 말하면 cronjob에서 이것을 사용하고 싶습니다.

답변1

find /var/www/tmp -mindepth 1 -maxdepth 1 ! -name ".*" -exec rm -r -- {} +

최대(및 최소) 깊이 1에서 파일을 찾습니다(즉, 지정된 디렉터리에서 직접 파일).~ 아니다마침표로 시작하고 rm -r일치 항목을 인수로 실행합니다.

그것이 어떻게 작동하는지 정확히 이해하기 전에 간단한 에코나 발에 총을 쏘지 않도록 먼저 시도해보세요.

이것은 모든 숨겨진 파일을 유지하는 것에 대한 귀하의 질문을 해결합니다. 주제는 약간 다르지만 find 명령은 이름이 .gitignore.

답변2

쉘 옵션이 dotglob설정 되어 있지 않으면 cd /var/www/tmp; rm -rf *원하는 대로 수행됩니다.

관련 정보