확실한 솔루션은 종료 코드 1을 생성합니다.
bash$ rm -rf .*
rm: cannot remove directory `.'
rm: cannot remove directory `..'
bash$ echo $?
1
하나의 가능한 해결책은 "."를 건너 뜁니다. 및 ".."디렉토리를 포함하지만 이름이 3자를 초과하는 파일 만 삭제합니다.
bash$ rm -f .??*
제거 할 수없는 것에 대해 너무 걱정하지 않는다면. & .. 그렇다면 누가 신경 쓰나요? 스크립트에서 추악한 출력에 대해 걱정하지 않으면 분명한 해결책은 다른 사람보다 솔직하게 타이핑하는 것이 적다고 생각합니다.
—
Matt
당신도 알다시피 .. 그리고. 파일이 아닙니다. 디렉토리에 대한 참조입니다. . (단일 도트)는 현재 디렉토리이고 .. (두 도트)는 디렉토리의 레벨을 한 단계 올립니다. 예를 들어, cd / home / user 인 경우. / home / user와 같고 ..은 / home /입니다. 즉,을 (를) 삭제할 수 없습니다. and .. (.?)
—
phuzion
주석에 감사드립니다. 나는 종종 명령 종료 코드 검사 (set -e)와 함께 스크립트에서 명령을 사용합니다. 이 경우 표시 종료 코드가 필요합니다.
—
Yonatan Broza
고유 한 것은 없습니다. .. rm -rf로 삭제되지 않도록 보호합니다. 이것은 rm의 최신 변형에 추가 된 보호 메커니즘 일뿐입니다.
—
kubanczyk 2009
그리고 항상 rm -rf가 있습니다. * || 해당 명령문에 대해 set -e 동작을 해결하려는 경우 true입니다.
—
도밍고 이그나시오 Galdos