리눅스 PC에서 루트(root) 권한을 갖고 있다면 어떤 파일이나 디렉토리든 자유롭게 삭제할 수 있습니다. 하지만 이는 양날의 검입니다. rm 같은 강력한 도구를 부주의하게 사용하면 중요한 시스템 파일까지 실수로 지워버릴 수 있기 때문입니다. 그래서 리눅스에서 파일이나 디렉토리를 삭제할 때는 몇 가지 주의사항을 미리 알아두는 것이 좋습니다.
리눅스에서 디렉토리나 파일을 삭제하는 방법은 크게 두 가지입니다. 배포판에 포함된 파일 관리자를 사용하거나, 터미널을 열고 적절한 권한으로 명령어를 실행하는 것입니다. 이 글에서는 파일 관리자를 이용한 방법부터 rm, shred 명령어까지 단계별로 자세히 살펴보겠습니다.
파일 관리자로 파일·디렉토리 삭제하기
리눅스 초보자라면 터미널에서 파일을 삭제하는 것이 부담스러울 수 있습니다. rm 명령어는 한 번 실행되면 되돌릴 수 없기 때문입니다. 이런 위험을 피하고 싶다면, 배포판에 기본 탑재된 파일 관리자를 활용해 보세요.
리눅스 파일 관리자는 디자인이 조금씩 다르지만, 작동 방식은 대체로 비슷합니다. 여기서는 우분투(Ubuntu)의 파일 관리자를 기준으로 설명하지만, 다른 배포판에서도 절차가 거의 동일하게 적용됩니다.
- 먼저 리눅스 배포판에서 파일 관리자를 엽니다. 문서 폴더 모양의 아이콘으로 되어 있어 찾기 어렵지 않습니다. 우분투에서는 이 앱의 이름이 Files(파일)입니다.
- 삭제하려는 파일이나 하위 폴더가 있는 디렉토리로 이동한 뒤, 해당 항목들을 선택합니다. 선택한 상태에서 마우스 오른쪽 버튼을 클릭하고 휴지통으로 이동(Move to Trash), Delete 등의 옵션을 고르면 됩니다. 배포판과 언어 설정에 따라 메뉴 이름은 조금씩 다를 수 있습니다. 키보드의 Delete 키를 눌러도 같은 효과를 얻을 수 있습니다.
- 대부분의 배포판은 파일을 완전히 지우기 전에 임시로 보관하는 휴지통 시스템을 운영합니다. 덕분에 실수로 삭제한 파일도 복원할 수 있습니다. 휴지통은 바탕화면, 파일 관리자 사이드바, 또는 앱 메뉴에서 찾을 수 있습니다. 삭제를 확정하려면 휴지통 폴더에 들어가 비우기(Empty) 또는 지우기(Erase) 옵션을 선택하세요.
- 또는 항목을 선택한 후 마우스 오른쪽 버튼을 클릭하고 휴지통에서 삭제(Delete from Trash)를 선택해 즉시 완전 삭제할 수도 있습니다.
rm 명령어로 파일·디렉토리 삭제하기
파일 관리자를 통한 삭제도 편리하지만 몇 가지 한계가 있습니다. 예를 들어 파일 소유자가 아니라면 루트 권한으로 파일 관리자를 실행해야 하고, GUI가 없는 헤드리스(headless) 서버 환경에서는 앱 자체를 사용할 수 없습니다.
바로 이럴 때 rm 명령어가 빛을 발합니다. 1971년 유닉스(Unix) 시절부터 이어져 온 이 명령어는 지금도 리눅스에서 파일과 디렉토리를 가장 빠르게 삭제하는 방법입니다. 다만 rm은 특히 sudo나 루트 계정으로 실행할 경우 그 위력이 막강하므로, 반드시 신중하게 사용해야 합니다.
- 단일 파일을 삭제하려면 새 터미널 창(또는 원격 SSH 연결)을 열고 rm 파일명을 입력합니다. 현재 위치가 해당 디렉토리가 아니라면 먼저 cd 명령으로 이동하거나, 전체 경로를 지정해 rm /path/to/file 형식으로 입력하세요.
- 여러 파일을 한 번에 삭제하려면 rm file1 file2처럼 파일 이름을 나열하면 됩니다. 필요하다면 세 개 이상의 파일도 공백으로 구분해 추가할 수 있습니다.
- 빈 디렉토리를 삭제하려면 rm -d directory를 입력합니다. 하위 폴더나 파일이 있는 디렉토리라면 재귀 옵션이 붙은 rm -r directory를 사용해야 합니다.
- 여러 디렉토리를 동시에 삭제하는 것도 가능합니다. rm -r directory1 directory2처럼 경로를 나열하면 됩니다.
- 특정 패턴에 일치하는 모든 파일이나 디렉토리를 삭제하려면 별표(*) 같은 와일드카드를 활용할 수 있습니다. 예를 들어 rm fil*는 'fil'로 시작하는 모든 파일을, rm -r dir*는 'dir'로 시작하는 모든 디렉토리를 삭제합니다.
- 보호된 파일이나 디렉토리는 강제 삭제가 필요할 수 있습니다. 이때는 rm -rf path를 사용합니다. 이 명령은 매우 위험하므로, 실행 전에 경로가 정확한지 반드시 두 번 확인하세요.
- rm -rf가 걱정된다면, 각 항목을 삭제하기 전에 확인 메시지를 받도록 설정할 수 있습니다. 파일은 rm -i path, 디렉토리는 rm -ir path를 사용하세요. 각 항목마다 Y 키를 누른 후 Enter를 입력하면 삭제가 진행됩니다.
rm 명령어의 다양한 옵션과 인수가 궁금하다면, 터미널에 man rm을 입력해 전체 매뉴얼을 확인할 수 있습니다.
shred 명령어로 파일 완전 삭제하기
rm이나 unlink 같은 명령어는 파일을 삭제하는 데는 효과적이지만 흔적을 남깁니다. 하드 드라이브나 외장 저장 장치에서 삭제된 파일을 복구 도구로 되살릴 수 있는 것正是 이 흔적 때문인데, 민감한 문서라면 이것이 오히려 위험이 될 수 있습니다.
이 문제를 해결하려면 삭제 전에 shred 명령어로 파일을 덮어써야 합니다. shred는 파일 내부의 모든 데이터를 여러 번 반복해서 덮어쓴 뒤 삭제하기 때문에 복구가 사실상 불가능합니다. 개인 정보나 기밀 문서를 안전하게 제거할 때 유용합니다.
- 터미널 창을 열거나 SSH로 원격 접속한 뒤 shred file을 입력합니다. file 부분에는 실제 파일 이름과 경로를 넣으세요. 경로 입력이 번거롭다면 먼저 cd 명령으로 해당 디렉토리로 이동한 후 실행하는 것도 좋습니다.
- shred에는 안전한 삭제를 돕는 추가 옵션이 있습니다. shred -f는 쓰기 보호된 파일도 강제로 처리하고, shred -u는 덮어쓰기 후 파일을 완전히 제거해 파일 관리자나 ls 명령 결과에서 더 이상 보이지 않게 합니다.
- 기본 3회보다 많이 덮어쓰고 싶다면 shred -n 5처럼 숫자를 지정하세요(숫자는 원하는 반복 횟수). 또한 shred -z 옵션을 추가하면 마지막에 0(zero)으로 한 번 더 덮어써서 shred 처리 흔적을 숨길 수 있습니다.
- shred는 기본적으로 진행 과정을 화면에 출력하지 않습니다. 실행 중 무엇을 하는지 자세히 보고 싶다면 shred -v 옵션을 사용하세요.
rm과 마찬가지로, 터미널에 man shred을 입력하면 명령어의 모든 옵션을 담은 전체 매뉴얼을 확인할 수 있습니다.
리눅스 시스템에서 파일 보호하기
리눅스에서 불필요한 파일과 디렉토리를 정리하면 소중한 문서나 사진 같은 진짜 중요한 데이터를 위한 저장 공간이 늘어납니다. Linux Mint든 그 밖의 주요 배포판이든, 위에서 소개한 방법은 거의 모든 리눅스 배포판에서 동일하게 적용됩니다.
데이터 손실이 걱정된다면 몇 가지 예방 조치를 취하는 것이 좋습니다. 리눅스는 상대적으로 보안성이 높지만, 로컬 네트워크로 확산되는 악성코드로부터 파일을 지키기 위해 리눅스 백신 프로그램을 함께 사용하는 것도 도움이 됩니다. 더불어 로컬 스토리지나 클라우드를 활용한 자동 백업을 설정해 두면 만일의 사태에도 소중한 파일을 지킬 수 있습니다.