rm -rf
파일이나 디렉토리를 제거 할 때 무엇을 합니까?
옵션 -r
과 -f
옵션 은 어떻게 작동합니까?
rm -rf
파일이나 디렉토리를 제거 할 때 무엇을 합니까?
옵션 -r
과 -f
옵션 은 어떻게 작동합니까?
답변:
명령은와 rm -rf
동일합니다 rm -r -f
.
에서 rm
의 man 페이지 (유형 man rm
터미널에서 그것을 볼) -r
을 수행합니다
remove directories and their contents recursively
그리고 -f
않습니다 :
ignore nonexistent files and arguments, never prompt
따라서 조합하여 둘 다 수행합니다.
이 명령을주의해서 사용하십시오!
rm -rf /
이론적으로 쓰기 권한이있는 디렉토리에있는 컴퓨터의 모든 파일을 삭제합니다. 루트 사용자라면 전체 시스템을 지우는 것을 의미합니다. (실제로 GNU rm
는 rm -r /
당신이 말하지 않으면 허용 하지 않는 특별한 경우를 가지고 있기 때문에 작동하지 않습니다 --no-preserve-root
.)
rm -rf /
그것이 제대로 잡히지 않았 는지 확인 하지 않는 것이 좋습니다 .
이전의 정답 외에도 낚시하는 법을 가르쳐 드리고자합니다.
명령의 작동 방식, 옵션의 기능 및 기능에 대해 확실하지 않은 경우 터미널을 열고 입력하십시오.
man <command>
예를 들면 다음과 같습니다.
man rm
일단 들어가면 옵션을 검색 할 수 있습니다. 맨 페이지는 실제로 읽기에 너무 길 수 있으므로 터미널 유형에서 다음을 수행하십시오.
/<pattern>
예를 들어 다음을 수행하십시오.
/-f
당신은 쉽게 착륙 할 수 있습니다 :
-f, --force
ignore nonexistent files and arguments, never prompt
-r 할 경우 :
-r, -R, --recursive
remove directories and their contents recursively
n
(다음) 및 N
(이전)을 사용하여 검색 결과 사이를 이동할 수 있습니다 .
무언가를해야하지만 명령 이름을 모르는 경우 apropos
man 페이지에서 검색 하는 데 사용하십시오 .
apropos <pattern>
예를 들면 다음과 같습니다.
apropos directory listing
rm
제거하기에는 짧습니다. r
플래그는 제거 디렉토리와 그 내용을 반복적으로하고이다 f
수단 힘, 그것은 어떤 확인 메시지를 무시합니다.
r flag is to remove directories
옳지 않습니다. 그것은 그것의 내용과 함께 디렉토리를 제거하고, 재귀 연산입니다. 당신의 말에 따르면, 그것은 단지 디렉토리를 제거 할 것입니다. 디렉토리 항목은 이름 - 아이 노드 매핑을 포함으로 만 이것은 단지 어떤 이해가되지 않습니다 ..
이미 언급했듯이 디렉토리가있는 rm -rf <ARG>
곳에서 파일을 재귀 적으로 강제로 제거 <ARG>
하는 것입니다 (파일은 괜찮을 수도 있음).
-r
(재귀 제거)의 요점 은 ( unlink ) rm
를 rm
사용 하는 기본 시스템 호출이 빈 디렉토리에서만 작동 하기 때문에 디렉토리가 비어 있지 않으면 디렉토리를 제거 할 수 없다는 것 입니다. 따라서 플래그가하는 것은 디렉토리로 내려 가서 파일을 먼저 제거한 다음 디렉토리가 비어있을 때만 깊이 우선 검색 입니다. 이와 같은 효과는 플래그 를 사용하여 명령을 통해 달성됩니다 (로 필터링을 지정하지 않았지만 다른 이야기입니다).-r
find
-delete
-type
에 관해서 -f
는 두 가지 작업을 수행합니다. 하나는 파일을 제거할지 여부를 묻지 않습니다 (예 : 디렉토리 내에서 다른 사용자가 소유 한 파일을 제거 할 때 rm: remove write-protected regular empty file 'f1'?
확인 프롬프트를 표시하지 않음 ). 존재하지 않는 파일. 예를 들어 파일 이름이 존재하지 않으면 rm: cannot remove 'nonexistent': No such file or directory
오류가 발생합니다.
참조 :