리눅스에서 파일 및 디렉터리를 삭제하는 명령어는 rm을 이용하면 된다. 리눅스에서는 파일을 한 번 삭제를 하면 윈도와는 달리 휴지통이라는 개념이 없어서 복구를 할 수 없으니 신중히 사용해야 합니다. Show 1. 단일 파일 지우기단일 파일은 rm 명령어 뒤에 파일명을 같이 입력하면 됩니다.
2. 여러 개 파일 지우기파일명을 띄어쓰기 구분자로 계속 나열해주면 여러개의 파일을 지울 수 있습니다.
3. 확장자명으로 전부 지우기리눅스에서 * 문자는 전체를 의미 합니다. 반대로 a.* 이렇게 명령어를 날리면 a. 으로 시작 되는 모든 파일을 지울 수 있습니다.
4. 하위 디렉토리까지 강제로 지우기리눅스에서는 폴더 하위에 파일이 있거나 다른 폴더가 있다면 삭제를 진행할 수 없습니다. 강제 옵션을 이용하여 지워주면 한 번에 지울 수 있습니다.
개요rm 은 매우 위험한 명령어라 주의깊게 사용해야 한다. 컨디션이 괜찮고 평온한 일상일 때야 실수할 확률이 적겠지만 연이은 야근으로 체력과 집중력이 떨어졌거나 장애 처리등으로 고도의 스트레스를 받거나 작업중에 전화가 계속 오는등 실수를 유발할 수 있는 환경에서는 작은 실수가 큰 참극을 부를수가 있다. 예로 개인 폴더에서 hidden 인 파일들을 삭제하려고 명령어를 입력했다고 가정해보자. 하지만 오타나 실수로 아래 명령어를 쳤고 하필 root 로 로그인중이었다면 해당 시스템에 치명적인 손실을 입힐 수 있다. 실수를 저지르고 이를 통해 배우고 성장하는 건 꼭 필요하지만 rm –rf 로 운영 중인 서비스를 날리는 것은 말하기 부끄러운 실수인 것도 사실이다. "rm -rf /" 등으로 인한 초대형 사고를 예방하기 위한 좋은 작업 습관을 정리해 본다. 비파괴적인(Non-Destructive) 명령어로 검증rm -rf 같이 파괴적인(Destructive) 명령어를 사용할 일이 있다면 ls등 비파괴적인 명령어를 먼저 수행하여 지우려는 대상이 맞는지 확인 후에 수행한다.. 예로 /opt/removeme 를 지워야 한다면 다음과 같은 순서로 진행하면 된다.
파괴적인 명령어 사용전 비파괴적인 명령어로 확인하는 습관은 SQL 작업을 할 경우에도 유용하게 사용할 수 있다. 예로 UPDATE나 DELETE 구문전에 SELECT로 영향받는 레코드의 수를 확인한 후에 SELECT에 사용한 WHERE 조건을 재활용하여 UPDATE, DELETE 구문을 생성하면 된다. rm 을 안전 옵션으로 실행일반적인 리눅스 배포판에는 GNU의 coreutil package 의 rm 명령어가 포함되어 있고 여기에는 --preserve-root 이라는 옵션이 있다. 이 옵션을 사용하면 실수로 rm -rf / 를 수행해도 다음과 같은 에러를 내며 수행을 거부한다.
CODE 다음과 같이 .bash_profile이나 .profile 같은 쉘 초기화 설정 파일에 rm 명령어를 -i(interactive) 옵션과 --preserve-root 옵션을 추가하여 alias로 지정하는 것을 추천한다.
CODE 안전하게 설계된 삭제 프로그램 사용일반적인 rm 대신 안전하게 설계된 trash-cli 을 사용한다. |