명령을 사용할 때 rm -rf
파일을 삭제하기 전에 항상 프롬프트가 나타나는지 확인하고 싶어서 이것을 추가해 보았습니다.~/.bashrc
alias 'rm -rf'='rm -rfi'
그러나 이것은 작동하지 않습니다. 이 문제를 어떻게 해결할 수 있나요?
답변1
확인은 원하는 결과를 얻기 위한 약한 방법입니다. 즉, 삭제하고 싶지 않은 파일을 삭제하지 않는 것입니다. 10번 연속으로 확인을 요청할 수 있지만 삭제만 요청하면 mispeled.txt
확인을 하기 전까지는 실수를 깨닫지 못할 것입니다.
시스템에서 trash
또는 유사한 명령을 사용하여 파일을 (복구 가능한) "휴지통"으로 보내는 것이 좋습니다. 이 trash-cli
패키지의 RPM 버전은 다음 위치에 있습니다.rpmfind.net하지만 그 버전을 보장할 수는 없습니다. 의심스러우면 직접 구축해 보세요.소스 코드에서.
의견에서 지적했듯이 별칭을 사용하는 것은 rm
전혀 좋은 생각이 아닙니다.~ 할 것이다당신이 보호적 별명이 없는 껍질 안에 있고 당신의 두뇌가 "안전"에 익숙해지면, 그것은 당신을 물기 위해 돌아올 것입니다 rm
.
답변2
귀하의 경우 ~/.bashrc
다음을 수행할 수 있습니다.
alias rm='rm -i'
이렇게 하면 을 입력하면 rm -rf example-dir
Bash가 이를 rm -i -rf example-dir
.
대화형 로그인 셸의 경우 ~/.bash_profile
. 로그인 셸도 사용할 수 있도록 하려면 ~/.bashrc
다음을 다음 항목에 추가하세요 ~/.bash_profile
.
[ -f ~/.bashrc ] && . ~/.bashrc
이제 ~/.bashrc
터미널이나 SSH 세션을 열 때 항상 실행됩니다.
답변3
f --> 강제, 메시지 표시 안 함
i --> 매번 메시지 표시
힌트가 필요하면 rm -i
별칭에 사용하세요. 두 가지 별칭(rmf 및 rmi)을 모두 갖고 싶다면 둘 다 가질 수 있습니다.
답변4
유효한 답변 외에도 별칭을 분리 ~/.bash_aliases
하고 마지막에 간단히 가져오는 것이 좋습니다.~/.bashrc
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
이미 말했듯이 별칭은 상호 배타적인 옵션으로 뒤틀려 있습니다.
‘-f’ ‘--force’ Ignore nonexistent files and missing operands, and never prompt the user. Ignore any previous ‘--interactive’ (‘-i’) option.
^ 에서 발췌 info rm
.
따라서 다음이 작동합니다.
alias rm='\rm -i'