rm의 별칭을 항상 확인하는 방법

rm의 별칭을 항상 확인하는 방법

명령을 사용할 때 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-dirBash가 이를 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'

관련 정보