3.2.3 파일 삭제 실수는 이제 안녕(명령 히스토리를 활용한 방법)
*.txt 같은 파일명 패턴을 사용하려다 오타로 인해 엉뚱한 파일을 삭제해본 경험이 있을 것이다. 다음은 애스터리스크 뒤에 공백 문자를 잘못 삽입해 모든 파일을 삭제해버린 예다.
chapter03 > never_delete_wrong_file_1
$ ls
123 a.txt b.txt c.txt dont-delete-me important-file passwords
$ rm * .txt # 위험!! 모든 파일이 삭제되니 실행 금지!!
이 같은 실수를 막기 위해 가장 흔히 쓰이는 대책은 rm을 rm -i의 별명으로 사용해 삭제 전에 확인을 거치도록 하는 방법이다.
$ alias rm='rm -i' # 셸 설정에서 흔히 볼 수 있는 별명 정의 $ rm *.txt /bin/rm: remove regular file 'a.txt'? y /bin/rm: remove regular file 'b.txt'? y /bin/rm: remove regular file 'c.txt'? y
이제 이런 오타가 치명적으로 위험하지는 않다. rm –i는 파일 삭제 전에 항상 확인을 요구하기 때문이다.
$ rm * .txt
/bin/rm: remove regular file '123'? # 실수를 저질렀다. 삭제를 중단한다