`alias rm = "rm -i"`는 유해하다고 생각합니까?


17

몇 시간 전에 (참조를 찾을 수 없음) 같은 별칭을 사용하는 것을 읽었습니다. alias rm="rm -i" 아주 나빴어.

그 사실에 대한 역사적인 증거 나 상식적인 설명이 있습니까?

별칭이없는 다른 프로필에서 재난을 초래할 수있는 명령을 확인하라는 확인 메시지에 의존하는 습관을 사용자에게 부여한다고 생각합니다.



나는 당신이 언급 한 주제를 발견했다고 생각합니다.
Daniel Beck

1
@ 대니얼 실제로이 스레드의 가장 upvoted 대답이 나쁜 관행을 언급하지만, 정말 질문의 중심 주제되지 않습니다.
Dunaril

답변:


36

네가 옳아.

네가 익숙해 져서 나쁘다. 만약 당신이 그것을 가지고 있지 않은 시스템에 있다면, 그리고 당신은 rm, 그것은 즉시 삭제를 시작하고 당신은 무슨 일이 일어나고 있는지 궁금해하고 있습니다.

많은 사용자가 서로 다른 시스템에 SSH 연결하는 데 익숙합니다. 그래서 가끔 개인화 된 사용자 계정 (별칭 포함)이 설정되지 않은 상태에서 많은 다른 시스템을 사용하는 것이 일반적입니다.

대신에 예를 들어 alias rmi='rm -i' 그 것을 사용하는 법을 배웁니다. 다른 시스템에이 파일이 설정되어 있지 않으면 실수로 파일을 삭제하지 않고 항상 전체 명령을 입력 할 수 있습니다.


4

@Daniel이 말했듯이, 당신이 그것을 기대할 수 있도록 훈련하는 것 이외에는 그 자체로는 해가되지 않습니다. 사실 CentOS의 기본 설정입니다. (확장 RHEL은 내가 사용한 적이 있기 때문에 너무 길었습니다) 턱시도에 엄청난 고통이 있어요. . 저의 나머지 시간 동안, "root 액세스 권한이 없어야하는 사람들을위한 Linux"설정을 피하기 위해 / bin / rm을 입력했습니다.


3
RHEL은 기본적으로이 옵션을 사용합니다. 적어도 필자가 사용한 시스템은 맞습니다.
Daniel Beck

4

큰 위험은 사람들이 이것과 같은 것에 의지하여 거물을 걸러 낼 수 있다고 생각합니다. 디렉토리에서 일부 이미지를 삭제하려고한다고 가정합니다.

rm -i pics/*.jpg

이것을 사용하여 glob을 수동으로 필터링 할 수 있습니다. 이는 매우 합리적 일 것입니다. 그러나, 만약 당신이 그것을 별명을 짓고 사용했다면 rm 그 별칭없이 껍질에 떨어져서 그것을 시험해 보았다. .. 당신은 단지 모든 당신의 그림 (oops)을 삭제했다!

개인적으로 나는 또한이 별칭이 내 혈압에 해롭다는 것을 안다.). 하지만 그건 나 뿐이야.


좋은 예. 물론 위험하거나 도박을 좋아한다면 ..
Dunaril

2

Daniel Beck이 말한 것과 더불어, 나는 -f 그 (것)들을 우회하는 -i, 이는 잠재적으로 위험한 결과를 낳습니다. rm -frm -rf 불필요하게. 어떻게 든 관련 : 방지하는 방법 rm -rf 문제는 이것이 "-i"라는 파일을이 질문의 대답에 duscissed로 생성하는 것입니다. 우발적 인 rm -rf / *를 어떻게 방지합니까? .

그러나 그 별칭이 없다면, 나는 -f를 사용하지 않을 것이며, 모든 것이 문제가되지 않을 것입니다.


3
당신이 나쁜 행동을 더욱 악화시키는 방법을 찾은 것처럼 보입니다. :)
Dunaril

0

이것은 많은 과거 수백 명의 사용자와 함께 일한 경험에 비추어 볼 때 해로운 것은 아닙니다.

rm ()  # must be a function, must require single answer for all targets
{
    ls -FCsd "$@"
    local reply ; echo -n 'remove[ny]? ' ; read reply
    if [ "_$reply" = "_y" ] ; then
        /bin/rm -rf "$@" ; else echo '(cancelled)'
    fi
}
  • 사용자는 '*'뿐만 아니라 y / n 프롬프트에 의존하여 파일을 선택하기 위해 와일드 카드를 올바르게 사용하도록 훈련 받았습니다.
  • 올바른 와일드 카드를 사용하기위한 조건 설정을 사용하면 rm 이 함수 나 함수가없는 다른 상황에서는 rm -i 별명.
  • 사용자가 'y'를 너무 많이 입력 한 파일을 복원하는 시간을 줄였습니다.
  • 사용자는 한 번만 응답해야합니다. 사용에 대한 긍정적 인 피드백을 제공합니다.
  • Control-c 인터럽트는 작동하며 보고서는 아무 것도하지 않는 것으로보고됩니다.
  • 스크립트가 아니기 때문에 실제 rm 훼손되지 않은 상태에서 다른 프로그램을 그대로 남겨 둡니다.

코드 스타일은 대부분 sh 호환 가능합니다 (use echo .... | tr -d '\012' pre-bash shells를 위해), 더 많은 bash 특정을 자유롭게 만들 수 있습니다. 나는 코드 자체를 공유하기 위해 글을 올리는 것이 아니라, 사용자 경험 그것으로 오는 변화.


카밀 : 내 대답에는 rm -i 역사적으로 (수백 명의 사용자가있는 내 경험으로) 잘못된 파일 삭제가 발생했으며, 포함 된 기능을 통해 올바른 와일드 카드를 사용하도록 사용자를 교육하여 오류율을 낮 춥니 다. 그래서 나는 괴롭히는 주요 문제들을 다루었습니다. rm -i 편의를 위해 해결책을 제공했으며, 총알 지점이 아래에 이 기능은 그것들이 서로 밀접한 관계에있는 것을 막지 못합니다.
Alex North-Keys
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.