리눅스 파일 삭제 rm -rf 대형사고 예방 방법
- 운영체제(OS)
- 2022. 10. 21.
리눅스에서 가장 위험한 명령어는 의심의 여지없이 rm -rf
입니다. 그러나 꼭 필요한 명령어이기도 합니다. 그래서 안전하게 사용하는 습관을 들이는 게 중요합니다.
rm -rf란?
리눅스에서 rm은 파일을 삭제하는 명령어입니다. 기본형인 rm
만 단독으로 사용하면 파일만을 제거합니다. 디렉토리(폴더)는 제거할 수 없습니다.
rm에 -r
옵션이 붙으면 디렉토리를 통째로 삭제할 수 있는 동시에 하위 디렉토리까지 모두 삭제가 가능합니다.
-f
옵션이 붙으면 쓰기 권한없이 읽기 권한만 있는 파일도 강제 삭제합니다. 지정한 삭제 대상이 없는 경우에 메시지를 출력하지 않도록 합니다.
결론적으로 rm -rf는 폴더 삭제가 가능하고, 삭제할 때마다 일일이 물음에 대답하지 않아도 되는 편리한 삭제 명령어입니다. 그래서 가장 많이 사용되는 동시에 가장 위험한 명령어입니다.
대형 사고의 주범은 슬레시(/)
rm -rf로 인한 사고의 주범은 /
라고 볼 수 있습니다. 아래 세 명령어의 차이를 보면 이해가 됩니다.
rm -rf ./*
rm -rf /*
rm -rf . /*
점(.
)하나 차이인데 어마 무시한 차이가 발생합니다. 첫 번째 명령어는 현재 있는 위치를 기준으로 하위 디렉토리를 모두 삭제합니다. 이 명령을 사용하려다가 아래의 명령어를 입력하면서 사고가 발생합니다.
두 번째는 / 디렉토리 및 하위 디렉토리를 모두 삭제하는 명령어, 세 번째는 현재 디렉토리(.)와 / 디렉토리 및 하위 디렉토리를 모두 삭제하는 명령어입니다. 쉽게 말해 root 계정으로 이 명령어를 수행하면 하드디스크를 포함한 os를 깨끗하게 밀어버립니다. 대형 사고입니다.
사고 예방 방법
1. 되도록 /는 쓰지 않습니다.
rm -rf로 인한 사고를 예방하려면 절대경로의 시작인 /를 사용하지 않는 게 좋습니다. 삭제하려는 위치로 이동하면 /없이도 *를 이용하면 전체 삭제가 가능합니다.
rm -rf *
2. 확장자를 패턴으로 사용합니다.
좀 더 나아가서 확장자를 붙여서 삭제하는 습관을 들이는 게 좋습니다. 예를 들어, 로그 파일을 모두 정리하는 경우에는 *.log 패턴으로 삭제하는 방법입니다. 로그 정리할 때 매우 유용합니다.
rm -rf *.log
3. -i 옵션을 활용합니다.
좀 귀찮은 방법이라 실용성엔 의문이 있지만, 파일을 삭제할 때 “진짜로 삭제하시겠습니까?” 같은 대답에 y나 n으로 답하도록 -i 옵션을 사용할 수 있습니다.
rm -i a.txt
y
$HOME/.bashrc에 rm=”rm -i”처럼 별칭을 설정하면 rm을 실행할 때 기본적으로 -i 옵션이 호출되도록 할 수도 있습니다. 단, 이것도 -f가 붙으면 무시됩니다.
4. root 계정에선 가급적 rm -rf을 사용하지 않습니다.
가능한 루트 계정으로는 rm -rf를 쓰지 않는 게 좋습니다. 모든 권한이 있기 때문에 실수했을 경우 더 치명적이기 때문입니다.
'운영체제(OS)' 카테고리의 다른 글
리눅스 디스크, 폴더 용량 확인 방법 (df, du) (0) | 2022.10.22 |
---|---|
리눅스 파티션 dev/sda에 하면 안 되는 이유 (0) | 2022.10.21 |
리눅스 SysVinit, Systemd 차이 (0) | 2022.10.19 |
리눅스 su, sudo 차이 (sudo 사용이 권고되는 이유) (0) | 2022.10.18 |
32비트 응용 프로그램이 여전히 사용되는 이유 (0) | 2022.10.17 |