리눅스 / 명령어 / rm / 파일 또는 디렉토리 삭제하는 명령어
Linux의 rm 명령은 파일을 삭제하고, -r 옵션을 사용하면 디렉터리와 그 안의 내용도 삭제합니다. 일반적으로 휴지통을 거치지 않으므로 명령을 실행하기 전에 경로와 삭제 대상을 확인하세요.
삭제 전에 확인할 사항
이 글은 GNU coreutils의 rm과 Bash 셸을 기준으로 합니다. rm으로 지운 파일은 일반적인 방법으로 되돌리기 어려울 수 있습니다. 중요한 파일은 별도로 백업하고, pwd와 ls -la로 현재 위치와 대상을 먼저 확인하세요.
rm이 매번 확인 메시지를 표시하는 것은 아닙니다. 기본 동작은 파일의 쓰기 권한과 입력이 터미널인지 등에 따라 달라지고, 셸의 별칭 설정이 영향을 줄 수도 있습니다. 파일마다 명시적으로 확인하려면 -i를 사용합니다. 자세한 조건은 GNU rm 설명서를 참고하세요.
파일 삭제하기
아래는 새 실습용 디렉터리를 만들고 그 안에서 삭제할 파일을 준비하는 예제입니다. 현재 위치에 rm-practice가 이미 있으면 다른 빈 위치를 사용하고, 첫 명령이 실패하면 이어서 실행하지 마세요.
mkdir rm-practice
cd rm-practice
printf 'practice\n' > sample.txt
ls
sample.txt가 표시되는지 확인한 다음 아래 명령을 실행합니다. 확인 메시지에서 y를 입력하면 삭제하고, 삭제하지 않으려면 n을 입력합니다.
rm -i sample.txt
ls
삭제를 승인했다면 ls 결과에 sample.txt가 더 이상 보이지 않습니다. rm sample.txt는 확인 없이 삭제될 수 있으므로 확인 메시지가 반드시 나온다고 가정하지 마세요.
디렉터리 삭제하기
빈 디렉터리만 삭제하려면 rmdir을 사용할 수 있습니다. 디렉터리가 비어 있지 않으면 일반적으로 실패합니다.
mkdir empty-dir
rmdir empty-dir
내용이 있는 디렉터리까지 삭제하려면 -r을 사용합니다. 아래 명령은 실습용 디렉터리와 파일을 만들고 확인 후 삭제합니다. -i를 함께 사용하면 각 항목에 관해 확인합니다.
mkdir example-dir
printf 'practice\n' > example-dir/file.txt
ls -la example-dir
rm -ri example-dir
확인 메시지에는 디렉터리 진입과 파일 및 디렉터리 삭제에 관한 질문이 나올 수 있습니다. 각 질문에 답하기 전에 이름을 확인하고, 삭제하려는 항목에만 승인하세요. 일부 질문을 거부하면 디렉터리가 남거나 오류가 표시될 수 있습니다.
와일드카드와 숨김 파일
*.txt 같은 패턴은 rm이 실행되기 전에 셸이 일치하는 이름으로 확장합니다. 여러 파일을 한꺼번에 삭제하기 전에 삭제 명령 대신 다음처럼 일치하는 이름을 먼저 살펴보세요.
printf '%s\n' ./*.txt
출력된 이름이 의도한 대상인지 확인한 뒤 필요할 때만 rm -i ./*.txt를 사용합니다. 일치하는 파일이 없으면 Bash 설정에 따라 패턴이 그대로 표시되거나 명령의 동작이 달라질 수 있습니다. 인용부호로 패턴 전체를 감싸면 일반적인 파일 이름 확장이 일어나지 않습니다.
기본 Bash 설정에서 *는 이름이 점으로 시작하는 숨김 항목을 포함하지 않지만, dotglob 등의 설정에 따라 달라질 수 있습니다. rm -rf *처럼 넓은 범위를 확인 없이 삭제하는 명령은 현재 위치와 확장 결과를 잘못 판단하면 큰 피해를 줄 수 있습니다. Bash 파일 이름 확장 설명에서 설정별 차이를 확인할 수 있습니다.
자주 쓰는 옵션과 경로
-i: 삭제할 항목마다 확인합니다. 거부한 항목은 삭제하지 않습니다.-r: 디렉터리 안의 내용까지 재귀적으로 삭제합니다.-f: 존재하지 않는 대상을 무시하고 확인 메시지를 표시하지 않습니다. 권한 오류까지 해결해 주는 옵션은 아닙니다.-v: 삭제한 항목을 출력해 결과를 확인하는 데 도움을 줍니다.
공백이 있는 경로는 rm -i "my file.txt"처럼 따옴표로 묶습니다. 파일 이름이 하이픈으로 시작한다면 rm -i -- -draft.txt처럼 -- 뒤에 지정해 옵션으로 해석되는 것을 막습니다.
권한 오류가 나면 대상의 상위 디렉터리에 삭제에 필요한 권한이 있는지 확인하고 관리자에게 문의하세요. 삭제 여부는 파일 자체의 쓰기 권한만으로 결정되지 않습니다. 삭제 후에는 해당 디렉터리의 목록을 다시 확인하고, 필요한 파일을 지웠다면 즉시 작업을 멈추고 백업 또는 운영 환경의 복구 절차를 확인하세요.




