rm -rf /와 rm -rf *. * 사이에 차이점이 있습니까?

rm -rf *.*는 파일 시스템을 손상 시키지만 rm -rf /는 손상되지 않습니다. 이?

댓글

답변

거기 “특별한 것은 없습니다. rm -rf *.*는 파일 이름 와일드 카드가있는 명령입니다. 현재 디렉토리에서 이름에 점이 포함 된 모든 파일을 반복적으로 제거합니다.

rm -rf /는 루트 디렉토리에서 rm를 실행하려고 할 때 오류를 표시합니다.이 는 POSIX에 의해 지정됨 :

[…] 피연산자 reso lves가 루트 디렉토리에있는 경우 rm 은 표준 오류에 진단 메시지를 작성하고 이러한 피연산자에 대해 더 이상 수행하지 않습니다.

셸 및 해당 설정에서 *.*는 상위 디렉터리의 경우 ..와 일치 할 수 있지만 /, 제거를 시도하는 것도 오류입니다.

둘 다 파일 시스템을 손상시키지 않으며 rm는 제거 만 수행 (시도)합니다. 일반적인 파일 시스템 호출을 사용하는 파일. 중요한 파일이 포함 된 디렉토리에서 첫 번째 명령을 실행하면 시스템이나 사용자 파일에 미치는 영향은 상당 할 수 있습니다.

댓글

  • 충분히 새로운 버전의 GNU rm (원래 Solaris IIRC에서 훔친 기능). 임베디드 경량 rm는 최신 POSIX와 호환되지 않습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다