리눅스 rm 명령어: rm -rf 옵션과 확인 없이 삭제하는 방법

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)
테스트 환경RHEL 계열AlmaLinux 9.8root 계정2026-10-05 확인

rm 명령어로 지운 파일은 휴지통을 거치지 않고 바로 삭제됩니다. rm은 remove의 약자로 파일과 디렉토리를 삭제하며, 이 글에서는 기본 사용법과 옵션, [rm -rf /]를 실행해도 루트 디렉토리가 남는 이유를 정리했습니다.

AlmaLinux 9.8은 root 계정에 [alias rm=’rm -i’]가 기본으로 들어 있어, 삭제하기 전에 확인을 묻게 됩니다. 이 설정이 되어 있지 않은 리눅스 OS의 경우를 위해 별칭을 직접 넣는 방법도 함께 다뤘습니다.

✅ 기본 사용 방법

기본 사용법은 아래와 같습니다.

rm -옵션 삭제할 파일 또는 디렉토리
rm 명령어

파일은 이름만 적으면 삭제되고, 디렉토리는 -r 옵션을 붙여야 삭제됩니다.

# 파일 삭제
rm file1
# 파일 여러 개 삭제
rm file1 file2
# 디렉토리와 하위 내용 삭제
rm -r dir1/
# 빈 디렉토리 삭제
rm -d dir1/
~]# rm dir1/
rm: cannot remove 'dir1/': Is a directory

옵션 없이 디렉토리를 지정하면 위와 같이 삭제되지 않습니다.

심볼릭 링크를 삭제하면 링크만 지워지고, 링크가 가리키는 대상 파일은 그대로 남습니다. 삭제 전후의 확인에는 ls 명령어를 함께 사용합니다.

✅ rm -rf: 확인 없이 삭제

rm 명령어를 실행하면 [remove regular file]을 묻는데, root 계정에서는 rm이 [rm -i] 별칭(alias)으로 실행되기 때문입니다.

~]# rm file1
rm: remove regular file 'file1'? y
~]# alias rm
alias rm='rm -i'

디렉토리를 -r 옵션으로 삭제하면 디렉토리에 들어갈 때와 파일마다 확인을 묻게 되어, 파일이 많을수록 번거롭습니다.

~]# rm -r logs/
rm: descend into directory 'logs/'? y
rm: remove regular file 'logs/access.log'? y
rm: remove regular empty file 'logs/error.log'? y
rm: remove directory 'logs/'? y

이럴 때는 -f 옵션을 함께 붙이면 확인 없이 삭제되며, 없는 파일을 지정해도 오류가 나오지 않습니다.

rm -rf logs/

명령어 앞에 역슬래쉬[\]를 붙여 별칭을 거치지 않거나, [yes |]를 앞에 붙여 확인마다 y가 입력되게 해도 같은 결과가 나옵니다.

\rm -r logs/
yes | rm -r logs/

✅ rm 명령어 옵션 & 시뮬레이터

옵션설명
-f--force확인 없이 삭제하며, 없는 파일을 지정해도 오류를 내지 않음
-i삭제할 때마다 사용자에게 확인 요청alias rm='rm -i'
-I(대문자 i)파일이 4개 이상이거나 -r 과 함께 쓸 때 한 번만 확인
-r, -R--recursive디렉토리와 하위 디렉토리, 파일까지 모두 삭제
-d--dir빈 디렉토리 삭제
-v--verbose삭제한 파일과 디렉토리를 한 줄씩 출력
--preserve-root루트 디렉토리(/)는 삭제하지 않음 (기본값)
--no-preserve-root루트 디렉토리(/) 보호를 해제
rm 명령어 시뮬레이터alias rm='rm -i'
[root@server work]#
브라우저 안에서만 동작하며 실제 파일은 건드리지 않습니다. rm 옵션을 바꿔 가며 입력하고 ls, cat으로 결과를 확인해 보세요. 지운 파일은 [처음부터]를 누르면 돌아옵니다. 키보드 ↑↓ 로 앞에서 쓴 명령을 다시 불러오고, uknew help 를 입력하면 쓸 수 있는 명령이 나옵니다.

✅ rm -rf / 루트 디렉토리 삭제 방지

호스팅 업무를 하다 보면 지우지 말아야 할 파일을 지우는 경우가 있습니다. 대부분은 백업 파일로 복구할 수 있지만, 루트 디렉토리를 지우면 스냅샷이 있어도 복구가 번거롭습니다. 실제로 rm -rf 명령어를 잘못 실행해 복구하지 못한 사례를 몇 번 들었습니다.

rm 명령어는 [-⁠-preserve-root] 옵션이 기본으로 적용되어 있어, [rm -rf /]를 실행해도 루트 디렉토리는 삭제되지 않습니다.

~]# rm -rf /
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafe

하지만 [rm -rf /*]는 막지 못합니다. 셸이 [/*]를 /bin, /etc, /home 같은 디렉토리 이름으로 바꿔서 넘기므로, rm 명령어는 [/]가 아닌 각 디렉토리를 삭제하게 됩니다.

AlmaLinux 9.8을 설치하면 [/root/.bashrc]에 rm, cp, mv 명령어의 -i 별칭이 아래와 같이 들어 있습니다. 일반 사용자 계정에는 이 별칭이 없습니다.

~]# grep alias /root/.bashrc
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

별칭이 없는 계정이나 리눅스 OS에서는 [~/.bashrc] 맨 아래에 한 줄을 넣고 다시 불러오면 됩니다.

# ~/.bashrc 맨 아래에 추가
alias rm='rm -i'
# 다시 불러오기
source ~/.bashrc
linux Free Software

ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.