2012-08-15 2 views
6

질문
  • 배쉬에서 rm -drm -R 명령의 차이점은 무엇입니까

?
  • 어느 것을 사용해야합니까? rm 명령에 대한 man 페이지에 따르면 세부

    Bash : "rm -d"와 "rm -R"의 차이점은 무엇입니까?

  • :

    • rm -d 시도는 디렉토리뿐만 아니라 다른 형식의 파일을 제거합니다.
    • rm -R 각 파일인수에 뿌리를 둔 파일 계층을 제거하려고 시도합니다. -R 옵션은 -d 옵션을 의미합니다.

    는 지금, 나는 내 질문에 대답하는 것처럼 보일 수 있습니다 마지막 문 (-R-d을 의미), 알고있다. 그러나, 나는 그들이 왜 그들이하는 일과 같다고 가정한다면, 두 명령 플래그가 왜 첫 번째 위치에 존재하는지 궁금해합니다.

    나는 Bash를 배우는 과정에 아직도 있기 때문에, Bash 프로그래머들 사이에서 어떤 옵션이 선호되는지 (보통), 그리고 그 이유는 무엇인지 아는 것이 좋습니다.

    +0

    이상한 rm은 당신이 사람들이 논의하고 있다는 것입니까? 내 늪지 표준 GNU coreutils rm에는 -d 옵션이 없습니다. – themel

    +1

    'rm'의 BSD 버전은'-d'를 가지고 있습니다. POSIX 표준은 대상이 디렉토리 일 때 rmdir과 동일하게 동작해야한다고 말하지만 BSD 버전은'-d'를 사용하지 않는 한'rm'의 역사적 동작을 따릅니다. – chepner

    +0

    '-d' 옵션은 [POSIX] (http://pubs.opengroup.org/onlinepubs/9699919799/utilities/rm.html)에 없기 때문에이 질문은 질문이있는 특정 시스템에 태그를 붙여야합니다 감독. –

    답변

    9

    일반적으로 rm은 비어 있더라도 디렉토리를 제거하지 않습니다. rm -drm의 역할을 rmdir과 같이 만듭니다. 디렉토리가 비어 있지 않으면 디렉토리를 제거하지 않지만 비어 있으면 삭제합니다.

    rm -R은 전체 재귀 적 삭제이며 디렉토리와 그 모든 내용을 제거합니다.

    -d은 사용하지 않았으며 항상 존재하지는 않습니다. 항상 rmdir을 사용합니다. 실제로 디렉토리가 비어있는 경우에만 디렉토리를 제거하려면 rmdir/rm -d을 사용하십시오. 디렉토리 및 모든 내용을 제거하려고한다는 것을 완전히 알고있는 경우에 대해 rm -R을 저장하십시오.

    3

    -d 옵션은 BSD 구현 인 rm에만 해당되며, 이는 Mac에서 찾을 가능성이 높습니다. 리눅스 시스템에서 찾을 수있는 GNU 구현에는 존재하지 않습니다.

    선호하는 선택 사항을 찾으려면 -r (소문자)을 사용하면 전체 트리를 제거하고 rmdir을 사용하면 단일 디렉토리를 제거하는 것이 더 편할 것입니다.

    -1

    분명히하려면 은 rm -d을 사용하지 않아야합니다. "작업 허용되지 않음"오류 메시지와 함께 실패하지 않는다고 가정하면 내용을 제거하지 않고 디렉터리를 제거합니다. 빈 디렉토리에는 rmdir과 같습니다. 비어 있지 않은 디렉토리에서 fsck로 복구해야하거나 매우 영리한 수동 해킹이 필요한 파일 시스템에 불일치가 발생합니다.

    결코 존재해서는 안되는 어리석은 선택입니다.그들이 그것을 추가했을 때 BSD 사람들은 나쁜 약을 먹고있었습니다. , rm -r 적어도 1973 년 이후 UNIX에 있었다, 그리고 rmdir

    +2

    디렉토리가 비어 있지 않으면'rm -d'가 "디렉토리 비어 있음"으로 실패합니다. 아마도 그 행동은 어느 시점에서 바뀌었을 것입니다. – chepner

    0

    1971 년 이후 RM 파일을 삭제합니다,하지만 난 문제가 몇 가지 옵션을 플래그 될 필요가 있으므로, 디렉토리를 제거하려고했다

    RM -f 확인을 요청 된 디렉토리를 제거합니다 확인을

    은 rm -R을 요청하지 않고 있지만, 내 경우에는 제거 파일을 강제로,하지만 난 너무 많은 파일을 가지고 있기 때문에, 나는 영원히 촬영 된 Y와 y를 입력에 보관됩니다

    rm -Rf는 나의 최종 해결책이었습니다. 강제로 디렉토리를 제거하지 않았습니다. g 확인을위한

    관련 문제