매우 큰 폴더에서 rm -Rf를 수행하는 동안 실제 단계 순서는 무엇입니까?

매우 큰 폴더에서 rm -Rf를 수행하는 동안 실제 단계 순서는 무엇입니까?

rm -Rf다양한 크기, 사용자 권한 등을 가진 많은 파일과 폴더가 있는 매우 큰 폴더에서 실행 중이라고 가정해 보겠습니다.

rm명령이 먼저 삭제할 파일 목록을 축적하고 전체 폴더에서 해당 파일을 검색한 후에만 삭제를 시작하는지 궁금합니다 . 아니면 명령이 실행되는 동안 각 파일이 적중되는 즉시 실제로 삭제됩니까?

예를 들어, 이 rm -Rf /명령을 실행하고 5초 후에 명령을 종료한다고 가정하면 아무것도 삭제되지 않습니까?

해당 특정 설치 폴더의 fs는 ext4.

답변1

실행하면 아래와 같이 오류 메시지가 출력되고 중지됩니다 rm -Rf /.rmPOSIX에 의해 지정됨:

피연산자가 루트 디렉터리로 확인되는 경우RM진단 메시지는 표준 오류에 기록되어야 하며 해당 피연산자에 대해 작업이 수행되지 않아야 합니다.

다른 경우 또는 강제로 rm프로세스를 진행하는 경우 /(버전을 강제로 적용할 수 있다고 가정할 경우)예를 들어rm옵션이 있는 GNU --no-preserve-root), rm가능한 한 빨리 파일과 디렉터리를 삭제하세요. 디렉터리가 비워지면 삭제할 수 있도록 깊이 우선 순서로 디렉터리를 처리합니다. 따라서 5초 안에 파일과 디렉터리가 삭제될 가능성이 높습니다.

이는 POSIX에 의해 지정됩니다(위 링크 참조).

각각문서다음 단계를 수행해야 합니다.

  1. 만약에문서존재하지 않는다:

    ㅏ. 만약에-에프지정된 옵션이 없습니다.RM진단 메시지는 표준 오류에 기록되어야 합니다.

    b. 남은 부분을 계속 진행합니다.문서.

  2. 만약에문서디렉터리 유형인 경우 다음 단계를 수행해야 합니다.

    ㅏ. 둘 다 아니라면-아르 자형옵션이 없습니다-아르 자형옵션 지정,RM진단 메시지는 표준 오류에 기록되어야 하며 다른 작업은 수행하지 않아야 합니다.문서을 클릭한 다음 나머지 파일을 계속 처리합니다.

    b.만약문서빈 디렉토리입니다.RM2d단계로 건너뛸 수 있습니다. 만약에-에프옵션이 지정되지 않았으며 권한이 없습니다.문서쓰기는 허용되지 않으며 표준 입력은 터미널 또는-나옵션 지정,RM프롬프트는 표준 오류에 기록되어야 하며 표준 입력에서 한 줄을 읽어야 합니다. 대답이 '아니요'인 경우,RM현재 파일에서는 어떤 작업도 수행하면 안 되며 나머지 파일은 계속해서 처리됩니다.

    씨. 포함하려면문서, 점 또는 점-점을 제외하고 여기에 나열된 네 단계(1~4)는 항목을 마치문서피연산자. 이것RM유틸리티는 기호 링크를 따라 계층의 다른 부분으로 디렉토리를 이동해서는 안 되지만 링크 자체를 제거해야 합니다.

    d.만약-나옵션 지정,RM프롬프트는 표준 오류에 기록되어야 하며 표준 입력에서 한 줄을 읽어야 합니다. 대답이 '아니요'인 경우,RM현재 파일에 대해 아무 작업도 수행하지 않고 나머지 파일을 계속 처리합니다.

  3. 만약에문서디렉토리형이 아니고,-에프옵션이 지정되지 않았고 파일 권한이 쓰기를 허용하지 않으며 표준 입력이 터미널 또는-나옵션 지정,RM프롬프트는 표준 오류에 기록되어야 하며 표준 입력에서 한 줄을 읽어야 합니다. 대답이 '아니요'인 경우,RM현재 파일에서는 어떤 작업도 수행하면 안 되며 나머지 파일은 계속해서 처리됩니다.

  4. 현재 파일이 디렉터리인 경우RM다음과 동일하게 구현되어야 합니다.rmdir()현재 파일의 경로 이름을 사용하여 호출되는 POSIX.1-2017 시스템 인터페이스 볼륨에 정의된 함수토론. 현재 파일이 디렉터리가 아닌 경우RM다음과 동일하게 구현되어야 합니다.풀리다()현재 파일의 경로 이름을 사용하여 호출되는 POSIX.1-2017 시스템 인터페이스 볼륨에 정의된 함수토론.

    어떤 이유로든 실패하면RM진단 메시지는 표준 오류에 기록되어야 하며, 현재 파일에서는 어떤 작업도 수행되어서는 안 되며, 나머지 파일의 처리는 계속되어야 합니다.

이것RM유틸리티는 경로 길이 제한으로 인해 실패하지 않고 파일 계층 구조의 모든 깊이로 내려갈 수 있어야 합니다(사용자가 지정한 작업 수가 시스템 제한을 초과하지 않는 한).

관련 정보