소개
이 실습에서는 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.txtold_report.txt파일 이름이 출력되어야 합니다. 이 파일이 보이지 않는다면 실습을 위해 미리 생성되어 있어야 하므로 강사에게 문의하세요.이제
rm명령어를 사용하여 이 파일을 삭제합니다:rm old_report.txtrm명령어는 지정된 파일을 제거(삭제)합니다.중요 참고: 그래픽 인터페이스의 "휴지통"으로 파일을 이동하는 것과 달리, 이 삭제는 즉각적이고 영구적입니다.
rm명령어에는 쉬운 "실행 취소(undo)" 기능이 없으므로 사용하기 전에 항상 다시 확인하세요!파일이 삭제되었는지 확인하기 위해 다시 목록을 출력해 봅니다:
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)을 입력하면 파일이 유지됩니다. 연습 중에n을 입력했다면rm -i important_file.txt를 다시 실행하고y를 입력하여 진행하세요.여기서 일어나는 일은 다음과 같습니다:
-i옵션은rm에게 각 삭제 전에 확인을 요청하도록 지시합니다.- 각 파일 삭제에 대해 명시적으로 "yes"라고 답해야 합니다.
- 이를 통해 삭제 내용을 검토하고 잠재적으로 취소할 기회를 얻게 됩니다.
파일이 삭제되었는지 확인합니다:
ls important_file.txty를 입력한 후에는 파일이 존재하지 않는다는 오류 메시지가 표시되어야 합니다. 파일 이름이 여전히 나열된다면rm -i important_file.txt를 다시 실행하고y로 삭제를 확인하세요.
문제가 발생하면 어떻게 해야 할까요?
실수로
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 (삭제된 파일을 출력하는 verbose 모드)와 같은 다른 유용한 옵션을 접하게 될 수도 있습니다. 하지만 이러한 고급 옵션을 사용할 때는 항상 각별히 주의하세요.



