소개
이 실습에서는 Linux 의 rm 명령어에 대한 실무적인 입문을 제공합니다. "remove"의 줄임말인 rm 명령어는 파일과 디렉터리를 삭제하는 데 사용되는 강력한 도구입니다. 일련의 가이드 단계를 통해 다양한 상황에서 rm을 효과적이고 안전하게 사용하는 방법을 배우게 됩니다.
당신이 소규모 기술 스타트업의 신입 시스템 관리자라고 가정해 봅시다. 첫 번째 업무는 시간이 지나면서 불필요한 파일과 폴더가 쌓인 회사의 공유 디렉터리를 정리하는 것입니다. 이 실습은 rm 명령어를 사용하여 이 작업을 효율적으로 완수하는 과정을 안내합니다.
프로젝트 디렉터리로 이동하기
파일 정리 작업을 수행할 프로젝트 디렉터리로 이동하는 것부터 시작하겠습니다.
터미널을 엽니다.
labex:project/ $와 같은 형태의 커맨드 프롬프트가 보일 것입니다.다음 명령어를 입력하고 Enter 를 눌러 프로젝트 디렉터리로 이동합니다.
cd /home/labex/project이 명령어는 현재 작업 디렉터리를
/home/labex/project로 변경합니다.여기서 어떤 일이 일어나고 있나요?
cd는 "change directory(디렉터리 변경)"의 약자입니다./home/labex/project는 이동하려는 디렉터리의 전체 경로입니다.
만약 "No such file or directory"와 같은 오류 메시지가 나타나면, 해당 디렉터리가 존재하지 않거나 접근 권한이 없음을 의미할 수 있습니다. 이 경우 경로를 다시 확인하고 시도해 보십시오.
올바른 위치에 있는지 확인하려면
pwd명령어를 사용합니다.pwd화면에
/home/labex/project가 출력되어야 합니다. 그렇지 않다면cd명령어를 다시 실행해 보십시오.이제 이 디렉터리에 무엇이 있는지 확인해 봅시다.
ls이 명령어는 현재 폴더의 모든 파일과 디렉터리를 보여줍니다.
old_report.txt,file1.tmp,file2.tmp,file3.tmp와 같은 파일들과old_projects라는 이름의 디렉터리가 포함된 목록이 나타나야 합니다.
Linux 에서는 위아래 화살표 키를 사용하여 이전에 입력했던 명령어들을 불러올 수 있다는 점을 기억하세요. 명령어를 반복하거나 약간 수정해야 할 때 시간을 절약할 수 있습니다.
단일 파일 삭제하기
이제 프로젝트 디렉터리에 들어왔으니, 불필요한 파일 하나를 삭제해 보겠습니다.
먼저 디렉터리에
old_report.txt파일이 존재하는지 확인합니다.ls old_report.txt파일명
old_report.txt가 출력되어야 합니다. 만약 이 파일이 보이지 않는다면, 실습을 위해 미리 생성되어 있어야 하므로 강사에게 문의하십시오.이제
rm명령어를 사용하여 이 파일을 삭제해 봅시다.rm old_report.txtrm명령어는 지정된 파일을 제거 (삭제) 합니다.중요 참고 사항: 그래픽 인터페이스에서 파일을 "휴지통"으로 보내는 것과 달리, 이 삭제 작업은 즉각적이고 영구적입니다.
rm명령어에는 쉬운 "실행 취소" 기능이 없으므로 실행하기 전에 항상 다시 한번 확인하십시오!파일이 삭제되었는지 확인하기 위해 다시 목록을 조회해 봅니다.
ls old_report.txt이번에는 파일이 존재하지 않는다는 오류 메시지가 나타나야 합니다. 이는 파일이 성공적으로 삭제되었음을 확인해 줍니다.
문제가 발생하면 어떻게 하나요?
파일을 삭제하려고 할 때 "Permission denied"가 나타나면 필요한 권한이 없다는 뜻입니다. 이 실습 환경에서는 적절한 권한이 부여되어 있지만, 실제 환경에서는
sudo rm을 사용해야 할 수도 있습니다 (이때는 매우 주의해야 합니다!).오류 메시지가 나타나지 않는데 파일이 여전히 남아 있다면,
rm명령어에 파일 이름을 정확히 입력했는지 확인하십시오. Linux 는 대소문자를 구분하므로old_report.txt와Old_Report.txt는 서로 다른 파일로 간주됩니다.실수로 잘못된 파일을 삭제한 경우, 안타깝게도 이를 복구할 쉬운 방법은 없습니다. 이것이
rm을 사용하기 전에 항상 두 번 확인하는 것이 중요한 이유입니다.
여러 파일 삭제하기
종종 여러 파일을 한꺼번에 삭제해야 할 때가 있습니다. 지금 연습해 보겠습니다.
먼저 어떤 임시 파일들이 있는지 확인해 봅시다.
ls *.tmp*.tmp에서*는 모든 문자와 일치하는 와일드카드입니다. 따라서 이 명령어는.tmp로 끝나는 모든 파일을 나열합니다.file1.tmp,file2.tmp,file3.tmp가 보여야 합니다.이제 세 파일을 한 번에 삭제해 봅시다.
rm file1.tmp file2.tmp file3.tmp이 명령어는 한 번에 세 파일을 모두 삭제합니다. 삭제할 파일들을 공백으로 구분하여 나열할 수 있습니다.
여기서 어떤 일이 일어나고 있나요?
rm명령어가 뒤에 나열된 각 파일에 적용됩니다.- 각 파일은 개별적으로 삭제되지만, 하나의 명령어로 처리됩니다.
- 목록 중 존재하지 않는 파일이 있더라도
rm은 나머지 파일에 대한 작업을 계속 진행합니다.
파일들이 삭제되었는지 확인하기 위해 와일드카드를 다시 사용해 봅니다.
ls *.tmp이번에는 "No such file or directory"와 같은 오류 메시지가 나오거나 아무것도 출력되지 않아야 하며, 이는 디렉터리에 더 이상
.tmp파일이 없음을 나타냅니다.
문제가 발생하면 어떻게 하나요?
파일을 삭제하려고 할 때 "No such file or directory"가 나타나면 파일이 이미 삭제되었음을 의미할 수 있습니다. 이는 문제가 되지 않으며,
rm은 존재하지 않는 파일을 단순히 무시합니다.rm명령어를 실행한 후에도 일부.tmp파일이 여전히 보인다면, 명령어의 철자를 다시 확인하고 시도해 보십시오. 위 화살표 키를 눌러 이전 명령어를 불러와 수정할 수 있습니다.많은 파일을 삭제하면서 어떤 파일이 삭제되고 있는지 확인하고 싶다면
-v(verbose) 옵션을 추가할 수 있습니다:rm -v file1.tmp file2.tmp file3.tmp. 이렇게 하면 각 파일이 삭제될 때마다 그 이름이 출력됩니다.
디렉터리 삭제하기
디렉터리를 삭제하려면 다른 접근 방식이 필요합니다. 디렉터리와 그 안의 내용을 삭제하는 연습을 해보겠습니다.
먼저
old_projects디렉터리의 내용을 확인합니다.ls old_projectsproject1.txt와project2.txt가 나열되어야 합니다.이제 일반적인
rm명령어로 디렉터리를 삭제해 봅시다.rm old_projects"Is a directory"와 같은 오류 메시지가 나타날 것입니다. 이는 디렉터리와 그 안의 내용이 실수로 삭제되는 것을 방지하기 위한
rm의 안전 장치입니다.디렉터리와 그 안의 모든 내용을 삭제하려면
-r(recursive, 재귀적) 옵션을 사용해야 합니다.rm -r old_projects-r옵션은rm에게 디렉터리와 그 내부의 모든 것을 재귀적으로 삭제하도록 지시합니다.여기서 어떤 일이 일어나고 있나요?
rm이old_projects디렉터리 내부로 들어갑니다.- 내부의 모든 파일 (
project1.txt및project2.txt) 을 삭제합니다. - 그런 다음
old_projects디렉터리 자체를 삭제합니다.
이 명령어는 확인 절차 없이 지정된 디렉터리의 모든 것을 삭제하므로 매우 주의해서 사용해야 합니다.
디렉터리가 삭제되었는지 확인합니다.
ls old_projects"No such file or directory"와 같은 오류 메시지가 나타나면 성공적으로 삭제된 것입니다.
문제가 발생하면 어떻게 하나요?
"Permission denied"가 나타나면 디렉터리나 그 내용 중 일부를 삭제할 권한이 없음을 의미할 수 있습니다. 이 실습 환경에서는 권한이 있지만, 실제 상황에서는
sudo rm -r을 사용해야 할 수도 있습니다 (이때는 극도로 주의해야 합니다!).디렉터리가 비어 있지 않은데
-r옵션을 사용하지 않으면rm은 삭제를 거부합니다. 이는 데이터 손실을 방지하기 위한 안전 조치입니다.rm -r을 사용하기 전에 항상 디렉터리 이름을 다시 확인하십시오. 잘못 사용하면 순식간에 방대한 양의 데이터를 삭제할 수 있으며,rm -r로 삭제된 파일은 복구하기가 매우 어렵습니다.
대화형 삭제를 위한 -i 옵션 사용하기
-i 옵션은 각 파일을 삭제하기 전에 확인 메시지를 표시하여 추가적인 안전 계층을 제공합니다. 이는 중요한 파일을 다루거나 삭제 대상을 신중하게 검토하고 싶을 때 특히 유용합니다.
먼저
important_file.txt파일이 존재하는지 확인합니다.ls important_file.txt파일명이 나열되어야 합니다.
이제
-i옵션을 사용하여 파일을 삭제해 봅시다.rm -i important_file.txt파일을 삭제할 것인지 묻는 프롬프트가 나타납니다. 프롬프트는 다음과 같은 형태일 것입니다.
rm: remove regular file 'important_file.txt'?삭제를 승인하려면
y("yes"의 약자) 를 입력하고 Enter 를 누릅니다. 마음이 바뀌어 파일을 유지하고 싶다면n("no"의 약자) 을 입력하고 Enter 를 누르면 됩니다.여기서 어떤 일이 일어나고 있나요?
-i옵션은rm이 각 삭제 작업 전에 확인을 요청하도록 합니다.- 각 파일 삭제에 대해 명시적으로 "yes"라고 답해야 합니다.
- 이를 통해 삭제 작업을 검토하고 잠재적으로 취소할 기회를 얻게 됩니다.
파일이 삭제되었는지 확인합니다.
ls important_file.txt삭제를 승인했다면 (
y입력), 파일이 존재하지 않는다는 오류 메시지가 나타나야 합니다. 삭제하지 않기로 선택했다면 (n입력), 파일 이름이 그대로 나열되어야 합니다.
문제가 발생하면 어떻게 하나요?
실수로
y를 눌러 보관하려던 파일을 삭제한 경우, 안타깝게도 복구할 쉬운 방법이 없습니다. 이것이 중요한 파일은 항상 백업해 두는 것이 좋은 습관인 이유입니다.rm -i로 여러 파일을 삭제하는 경우 각 파일마다 확인 메시지가 뜹니다. 도중에 마음이 바뀌면 Ctrl+C 를 눌러 작업을 중단할 수 있습니다. 이미 삭제를 승인한 파일은 사라지지만, 나머지 파일에 대한 삭제는 중단됩니다.
-i 옵션은 여러 파일을 삭제하면서 각 삭제 건을 개별적으로 검토하고 싶을 때 특히 유용합니다. 중요한 파일의 실수에 의한 삭제를 방지하는 데 도움이 됩니다. 다만, 삭제할 파일이 아주 많을 경우 매번 확인하는 과정이 번거로울 수 있다는 점을 유의하십시오.
요약
이 실습에서는 Linux 에서 파일과 디렉터리를 삭제하기 위해 rm 명령어를 사용하는 방법을 배웠습니다. 다음 내용들을 연습했습니다:
- 단일 파일 삭제하기
- 여러 파일 삭제하기
-r옵션을 사용하여 디렉터리 삭제하기- 대화형 삭제를 위해
-i옵션 사용하기
rm 명령어는 강력한 도구이지만 주의해서 사용해야 한다는 점을 기억하십시오. 삭제된 파일이 종종 "휴지통" 폴더로 이동하는 그래픽 인터페이스와 달리, rm은 파일을 영구적으로 삭제합니다. 특히 중요한 파일이나 디렉터리를 다룰 때는 Enter 를 누르기 전에 항상 명령어를 다시 한번 확인하십시오.
기억해야 할 주요 사항:
- 단일 파일을 삭제하려면
rm filename을 사용합니다. - 여러 파일을 삭제하려면
rm file1 file2 file3을 사용합니다. - 디렉터리와 그 내용을 삭제하려면
rm -r directory를 사용합니다. - 삭제 전 확인을 거치려면
rm -i filename을 사용합니다.
rm 사용이 익숙해지면 확인 메시지 없이 강제로 삭제하는 -f나 삭제된 파일을 출력해 주는 -v와 같은 다른 유용한 옵션들도 접하게 될 것입니다. 하지만 이러한 고급 옵션들을 사용할 때는 항상 각별히 주의해야 합니다.



