리눅스 명령어 rm 사용법 및 4가지 옵션

리눅스 명령어 rm은 리눅스(또는 유닉스) 시스템을 사용 중 불필요한 파일을 삭제해야 하는 상황에서 가장 많이 사용되는 명령어 중 하나입니다. rm 명령어는 “remove”의 약자로, 파일이나 디렉터리를 삭제할 때 사용됩니다. 이번 포스팅에서는 rm 명령어의 기본 사용법, 다양한 옵션, 그리고 사용 시 주의해야 할 점들을 자세히 알아보겠습니다.

리눅스 명령어 rm 기본 사용법

rm 명령어는 매우 간단하게 사용할 수 있습니다. 기본적인 사용법은 다음과 같습니다.

rm 파일명
ShellScript

예를 들어, test.txt라는 파일을 삭제하고 싶다면 다음과 같이 입력합니다.

rm test.txt
ShellScript

이 명령어를 입력하면 test.txt 파일이 삭제됩니다. 정상적으로 삭제된 경우에는 아래 그림과 같이 아무 메시지도 보이지 않고 명령 프롬프트가 나타납니다.

그림 1. 리눅스 명령어 rm: 파일 삭제
그림 1. 리눅스 명령어 rm: 파일 삭제

rm 명령어의 주요 옵션

rm 명령어는 여러 가지 유용한 옵션을 제공하여 다양한 상황에 맞게 사용할 수 있습니다. 주요 옵션들을 살펴보겠습니다.

-i (interactive: 상호작용 모드)

-i 옵션을 사용하면 파일을 삭제하기 전에 확인 메시지를 띄워줍니다. 실수로 중요한 파일을 삭제하는 것을 방지할 수 있습니다.

rm -i test.txt
ShellScript

이렇게 입력하면 test.txt 파일을 삭제하기 전에 파일을 삭제할 것인지 물어보는 메시지가 나타납니다.

빈 파일을 삭제하는 경우에는 아래와 같이 “rm: remove regular empty file ‘filename’?”과 같이 확인 메시지를 띄워줍니다.

그림 2. 리눅스 명령어 rm -i 옵션으로 빈 파일 삭제
그림 2. 리눅스 명령어 rm -i 옵션으로 빈 파일 삭제

그리고 내용이 있는 파일을 삭제할 때에는 “rm: remove regular file ‘filename’?”이라고 물어봅니다.

그림 3. 리눅스 명령어 rm -i 옵션으로 내용이 있는 파일 삭제 확인
그림 3. 리눅스 명령어 rm -i 옵션으로 내용이 있는 파일 삭제 확인

위의 두 가지 경우 모두 Y를 누르면 파일이 삭제되며, 그렇지 않으면 파일이 삭제되지 않습니다.

-r (recursive: 재귀적 삭제)

-r 옵션은 디렉터리와 그 안의 모든 파일 및 서브디렉터리를 삭제할 때 사용합니다. 빈 디렉터리가 아닌 경우 이 옵션을 반드시 사용해야 합니다.

rm -r test
ShellScript

위의 명령어는 test 디렉터리와 test 디렉터리 하위에 있는 모든 파일과 디렉터리를 삭제합니다. 아래 그림에는 test 디렉터리의 내용을 ls 명령어로 확인하고, rm -r 명령어를 이용해서 test 디렉터리와 하위의 모든 파일과 디렉터리를 삭제한 결과를 확인할 수 있습니다.

그림 4. 리눅스 명령어 rm -r 옵션으로 재귀적 삭제
그림 4. 리눅스 명령어 rm -r 옵션으로 재귀적 삭제

-f (force: 강제 삭제)

-f 옵션은 존재하지 않는 파일을 삭제하려고 할 때 안내 메시지를 출력하지 않고 강제로 삭제합니다. 또한 파일 권한을 무시하고 삭제를 시도합니다.

rm -f test.txt
ShellScript

rm 메시지로 없는 파일을 삭제하려고 하면 아래와 같이 “rm: cannot remove ‘filename’: No such file or directory”라는 메시지로 삭제할 파일이 없다고 알려줍니다. 하지만 rm -f 명령어를 사용하면 파일이 없어도 별도의 안내 메시지 없이 종료됩니다.

그림 5. 리눅스 명령어 rm 옵션 없이 삭제하는 경우 나타나는 오류 메시지
그림 5. 리눅스 명령어 rm 옵션 없이 삭제하는 경우 나타나는 오류 메시지

또한, 아래 그림에서 보면 test.txt 파일은 root 사용자와 root 그룹에 소유권이 있는 것을 확인할 수 있습니다. 옵션 없이 rm 명령어를 사용하면 “rm: remove write-protected regular file ‘filename’?”이라고 물어보지만, -f 옵션을 사용하면 묻지도 따지지도 않고 바로 삭제해 줍니다. 따라서 중요한 파일을 삭제할 가능성이 있을 때에는 -f 옵션을 매우 신중하게 사용해야 합니다.

그림 6. 리눅스 명령어 rm -f 옵션으로 강제삭제
그림 6. 리눅스 명령어 rm -f 옵션으로 강제삭제

-v (verbose: 자세히 출력)

-v 옵션은 삭제되는 파일이나 디렉터리의 이름을 출력하여 어떤 파일이 삭제되고 있는지 확인할 수 있습니다. 다음 명령어는 test.txt 파일이 삭제되면서 그 사실을 터미널에 출력합니다.

rm -v test.txt
ShellScript

아래 그림에서는 test로 시작하는 모든 파일을 삭제하되 어떤 파일이 삭제됐는지 확인하는 -v 옵션을 함께 사용했습니다. 파일들은 모두 삭제되었고, test5는 디렉터리이므로 삭제되지 않은 것을 확인할 수 있습니다. 만약 test5 디렉터리까지 함께 삭제하고 싶다면 앞서 살펴본 -r 옵션을 사용해야 합니다.

그림 7. 리눅스 명령어 rm -v 옵션으로 삭제결과를 자세히 출력
그림 7. 리눅스 명령어 rm -v 옵션으로 삭제결과를 자세히 출력

rm 명령어 사용 시 주의사항

데이터 복구 불가

rm 명령어로 파일을 삭제하면 해당 파일은 완전히 삭제되며, 일반적인 방법으로는 복구할 수 없습니다. 따라서 중요한 파일을 삭제할 때는 각별한 주의가 필요합니다. 가능하다면 백업을 만들어 두는 것이 좋습니다.

만약 GUI 환경에서 리눅스를 사용한다면, 파일 매니저와 같은 곳에서 파일을 삭제하여 삭제된 파일을 휴지통에 남겨둘 수도 있습니다.

재귀적 삭제 시 주의

-r 옵션을 사용할 때는 특히 주의해야 합니다. 디렉터리 전체를 삭제할 때 실수로 중요한 데이터가 포함된 디렉터리를 삭제할 위험이 있습니다. 이 옵션을 사용할 때는 항상 확인하는 습관을 가지세요.

강제 삭제 시 주의

-f 옵션은 매우 강력한 옵션으로, 권한 문제를 무시하고 파일을 삭제합니다. 이 옵션을 남용하면 시스템에 필요한 파일을 실수로 삭제할 수 있으므로 주의해야 합니다.

유용한 활용 방법

특정 확장자를 가진 파일 일괄 삭제

특정 확장자를 가진 파일들을 한 번에 삭제하고 싶을 때 rm 명령어와 와일드카드(*)를 조합하여 사용할 수 있습니다. 예를 들어, .log 파일들을 모두 삭제하려면 다음과 같이 합니다.

rm *.log
ShellScript

이 명령어는 현재 디렉터리의 모든 .log 파일을 삭제합니다.

그림 8. 리눅스 명령어 rm: 와일드 카드(*) 사용해서 일괄 삭제
그림 8. 리눅스 명령어 rm: 와일드 카드(*) 사용해서 일괄 삭제

특정 디렉터리 내 모든 파일 삭제

디렉터리 내의 모든 파일을 삭제하고 싶을 때는 rm 명령어와 * 와일드카드를 사용할 수 있습니다. 예를 들어, temp 디렉터리 내 모든 파일을 삭제하려면 다음과 같이 합니다.

rm temp/*
ShellScript

이 명령어는 temp 디렉터리 내 모든 파일을 삭제하지만, 서브디렉터리는 삭제하지 않습니다. 서브디렉터리까지 모두 삭제하려면 -r 옵션을 추가해야 합니다.

rm -r temp/*
ShellScript

아래 그림에서 temp 디렉터리에 2개의 파일과 한 개의 디렉터리가 있는 것을 확인할 수 있습니다. rm temp/* 명령어를 이용하면 temp 디렉터리의 파일들이 삭제되지만 디렉터리는 삭제할 수 없다고 알려줍니다. rm -r 옵션을 이용해서 temp 디렉터리 하위에 있는 디렉터리들을 모두 삭제하는 것을 확인할 수 있습니다.

그림 9. 리눅스 명령어 rm -r 옵션으로 하위 디렉터리의 파일 및 디렉터리 삭제
그림 9. 리눅스 명령어 rm -r 옵션으로 하위 디렉터리의 파일 및 디렉터리 삭제

정리

rm 명령어는 리눅스에서 파일 및 디렉터리를 삭제할 때 매우 유용한 도구입니다. 기본 사용법과 주요 옵션들을 잘 이해하고 활용하면 파일 관리가 훨씬 수월해집니다. 하지만 강력한 명령어인 만큼 사용 시 주의사항을 항상 염두에 두고 실수로 중요한 데이터를 삭제하지 않도록 주의해야 합니다. 필요한 경우 백업을 만드는 습관을 가지는 것도 좋은 방법입니다. 이 포스팅이 rm 명령어를 안전하고 효과적으로 사용하는 데 도움이 되길 바랍니다.

참고자료

관련 포스트

Leave a Comment