find - $[duplicate]를 사용하여 디렉토리 삭제 실행

find - $[duplicate]를 사용하여 디렉토리 삭제 실행

존재하다달러 이름이 있는 Maven 로컬 저장소 디렉토리 - 해결되지 않은 속성이 있습니까?나는 파일 이름에 달러 기호가 있는 수십 개의 디렉토리를 얻는 방법을 설명했습니다.

나는 다음을 사용하여 이것을 제거하려고했습니다.

find . -type d -name "*\$*" -exec rm -rf {} \;

각 디렉터리에 대한 오류 메시지를 제공합니다. 그러나 디렉토리와 그 내용은 여전히 ​​없습니다.

그래서 다음을 다시 시도했습니다 /tmp.

mkdir "\$adir"
find . -type d -name "*\$*" -exec rm -rf {} \;

그리고 오류가 다시 나타납니다

find: ./$adir: No such file or directory

이러한 경고 없이 이러한 파일을 어떻게 삭제할 수 있습니까?

답변1

이는 일치하는 각 디렉토리에서 find실행 rm -rf한 다음 해당 디렉토리에 들어가려고 시도하기 때문에 발생하지만 사라집니다.

이를 방지하고 해당 경고를 받지 않으려면 find디렉터리를 더 이상 처리하려고 시도하지 않도록 디렉터리를 정리하라고 지시해야 합니다.

find . -type d -name "*\$*" -exec rm -rf {} \; -prune

여러 디렉터리를 처리할 수 있으므로 여러 디렉터리를 한 번에 삭제하도록 rm지시할 수 있습니다 .find

find . -type d -name "*\$*" -exec rm -rf {} + -prune

관련 정보