이 명령이 모든 것을 삭제한 이유는 무엇입니까?

이 명령이 모든 것을 삭제한 이유는 무엇입니까?

Unix 상자에서 다음 명령을 실행합니다.

find . name CVS -exec rm -fr {} \;

CVS현재 디렉토리의 모든 디렉토리 내에서 호출된 파일을 삭제하고 싶었고 모든 것이 삭제되었습니다.

다행스럽게도 복구하기 위해 해야 할 일은 CVS에서 다시 체크아웃하는 것뿐이었습니다. 내가 /시작 디렉터리로 지정했다고 상상해보세요 !

name대신에 를 사용했기 때문인 것 같습니다 -name. 난 그냥 다음과 같이 다시 실행

find . -name CVS -exec rm -fr {} \;

그리고 그것은 잘 작동하는 것 같습니다. name와 반대로 사용되면 정확히 어떻게 되나요 -name?

답변1

이전에 대시가 누락되었으므로 -name다음을 찾고 있었습니다.경로., name및 이라는 이름 CVS이 붙은 점은 현재 폴더를 참조하므로 모두 삭제됩니다.

find 유틸리티는 나열된 각 경로에 대해 디렉토리 트리를 반복적으로 내려갑니다.

echo실행하려는 명령 앞에 다음을 사용하여 쉽게 테스트할 수 있습니다 .

찾다 . 이름 CVS -exec echo rm -fr {} \;

관련 정보