본문 바로가기
혼공

[Bash] rm 명령어

by letsgomin 2026. 4. 23.

파일이나 디렉토리를 삭제하다보면 자주 사용하는 명령이 바로 "rm" 명령어이다.
그런데, 이 놈 뒤에 꼭 "-rf"라던지 "-d"라던지 옵션을 마구 붙여서 사용해야만 삭제가 정상적으로 되는 경우가 허다하다.

 

오늘은 rm 명령어에 대해 파헤쳐보자.

 

rm 명령어?

: rm 명령어는 파일을 삭제하는 아주 강력하고 유용한 명령어이다.
파일을 삭제할때는 단일 명령어로 삭제가 가능하나, 폴더나 존재하지 않는 파일을 인자값으로 넣어서 명령을 실행하면 오류가 나기 일수이다. 그래서 옵션을 붙여주어 기능을 추가해준다.

rm 명령어 옵션

옵션 이름 설명
-i Interactive (상호작용) 삭제하기 전에 매번 사용자에게 "너 정말 지울거야?"라고 확인한다.
-f Force (강제) 존재하지 않는 파일이라도 에러 메시지를 띄우지 않고 강제로 삭제한다.
-r Recursive (재귀) 디렉토리(폴더)와 그 안의 모든 내용을 포함하여 삭제한다.
-v Verbose (장황하게 공지) 어떤 파일이 삭제되고 있는지 과정을 화면에 출력한다.
-d Directory (디렉토리) 비어있는 디렉토리만 삭제한다.

상황별 활용 예시

1. 단일 또는 여러 파일 삭제할 때 (파일만)

# 단일 파일 삭제
rm file_1.txt

# 여러 파일 삭제
rm file_2.txt image_1.jpg

- 가장 기본적인 형태로, 나열한 순서대로 파일을 삭제한다.

2. 실수 방지를 위해 삭제 전 확인하고 싶을 때 (-i)

rm -i secret.docx
# 출력: rm: remove regular file 'secret.docx'? _

- 중요한 파일을 지울 때 실수를 줄이기 위해 사용한다.

- y를 입력해야 삭제된다. 삭제 안하고 싶으면 n 입력.

3. 디렉토리와 내부 콘텐츠 전체 삭제할 때 (-r)

# 폴더 삭제할때 반드시 이 옵션이 필요하다
rm -r old_project/

- 폴더를 삭제할 때는 반드시 이 옵션이 필요하다.

- 내용이 들어있는 디렉토리와 디렉토리 내부의 것들을 삭제하기 위해선 재귀적(recursive)으로 rm명령어가 실행되어야 하기 때문이다.
- 보통 폴더 삭제시 rm -rf (삭제하고 싶은 폴더명)식으로 사용한다. (-f 옵션을 통해 강제삭제 수행)

4. 삭제 과정을 눈으로 확인하고 싶을때 (-v)

rm -rv test_folder/
# 출력: 
# removed 'test_folder/test1.txt'
# removed 'test_folder/test2.txt'
# removed directory 'test_folder/'

- 많은 파일을 지울 때 어떤 것들이 지워졌는지 리스트로 보고 싶을 때 유용하게 사용한다.

추가 팁. 와일드카드 ( * )

: 특정 확장자를 가진 파일을 한꺼번에 지울 때 사용해서, 아주 맛돌이다.

# 현재 폴더의 모든 .log 파일을 삭제
rm *.log

# 현재 폴더의 모든 .jpg 파일을 삭제
rm *.jpg

주의사항

: rm 명령어는 파일이나 디렉토리를 "휴지통"으로 보내는 것이 아니라, "시스템에서 즉시 영구 삭제"하는 것이라 사용시 주의가 각별히 필요하다.

따라서, 되도록이면 -i 옵션을 추가해서 항상 확인하는 습관을 들일 필요가 있다. (는데 귀찮...)

[alias(별칭) 설정하는 법]
많은 개발자가 실수 방지를 위해 .bashrc나 .zshrc 설정 파일에
alias rm='rm -i' 를 등록해서 사용한다고 한다.
이렇게 하면 그냥 rm 만 쳐도 항상 확인 절차를 거치게 된다.

 

컴퓨터에서 마우스로 Drag & Drop으로 삭제하거나, 마우스 우클릭으로 삭제, 혹은 단축키로 삭제해서 쓰레기통으로 보내지 말고, 개발자답게 터미널에서 rm 명령어로 기깔나게 삭제해보는 건 어떨가?

 

 

더딜지라도 결국 성장한다

'혼공' 카테고리의 다른 글

예외처리  (0) 2026.04.27
[Bash] grep 명령어  (0) 2026.04.23
[Bash] 기본 명령어 모음  (0) 2026.04.23
[Java] while문 vs do while문  (0) 2026.04.23
[Bash] 파일 만들기  (0) 2026.04.23