디렉토리 자체가 아닌 패턴을 사용하여 디렉토리를 찾아 내용을 삭제하십시오.

디렉토리 자체가 아닌 패턴을 사용하여 디렉토리를 찾아 내용을 삭제하십시오.

find 명령의 패턴을 사용하여 디렉터리 크기를 반복할 수 있습니다.

find . -name "results_*" -exec du -sm '{}' \;

이제 이러한 디렉터리의 내용을 삭제하되 디렉터리 자체(result_*)는 그대로 유지하여 해당 디렉터리가 존재하고 백업에서 찾을 수 있음을 나타내는 자리 표시자를 만들고 싶습니다.

어떻게 해야 하나요?

답변1

대신 경로를 일치시킬 수 있습니다.

find . -path "*/results_*/*" -delete

또는 find지원하지 않는 경우 -delete,

find . -path "*/results_*/*" -exec rm -rf {} \; -prune

이는 마지막 경로 구성 요소를 제외하고 해당 경로에서 모든 것을 찾습니다 results_*. 따라서 일치하는 디렉터리의 모든 내용은 results_*제거되지만 디렉터리 자체는 유지됩니다(그 자체가 일치하는 디렉터리에 있지 않는 한 results_*).

관련 정보