zsh에서 이중 rm 검증


15

zsh에서 rm *을 수행하면 다음과 같은 결과가 나타납니다.

2014-06-08 10:14:23 $ rm *
zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y
rm: remove regular file `development.log'? y

먼저 zsh가 모두 삭제를 원하는지 묻는 메시지를 표시 한 다음 rm은 각 특정 파일을 요청합니다.

zsh 인증을 어떻게받을 수 있습니까?


3
사용하십시오 rm -f ./*. rm파일에 대한 쓰기 권한이 없으면 기본적으로 아무 것도 묻지 않습니다. 아마 당신은alias rm='rm -i'
— Stéphane Chazelas

어쨌든 그것은 Vagrant 쉘 내에서 삭제를 실행하고 있으며 파일은 랩톱 파일 시스템에서 호스팅됩니다. 감사합니다
— ardochhigh

2
참고로 zsh는 여전히 "rm -rf *"를 묻는 메시지를 표시합니다.setopt rmstarsilent
— Matt

답변:


29

"zsh : 모든 파일을 삭제 하시겠습니까?"메시지는 zsh 기능이며, 특히 glob 확장 이전 또는 rm인수 전에 호출 된 명령을 호출하여 트리거됩니다 . 로이 기능을 끌 수 있습니다 .*something/*setopt rm_star_silent

“rm : remove regular file”메시지는 rm명령 자체 에서 나옵니다 . 기본적으로 표시되지 않으며 rm옵션으로 호출 할 때만 나타납니다 -i. 이 메시지를 원하지 않으면 해당 옵션을 전달하지 마십시오. 이없는 -i경우 에도 rm읽기 전용 파일을 삭제하려고하면 확인 메시지가 표시됩니다 (다른 메시지와 함께). 옵션을 전달하여이 확인을 제거 할 수 있습니다 -f.

-i명령 행을 전달하지 않았기 때문에 rm아마도 별명 일 것입니다 rm -i(함수, 비표준 랩퍼 명령 또는 다른 별명 일 수도 있지만 별명 rm -i이 가장 타당합니다). 일부 기본 구성은 alias rm='rm -i'셸 초기화 파일에 포함 됩니다. 이것은 배포판이나 시스템 관리자가 설정 한 것 또는 다른 곳에서 가져 와서 구성 파일에 추가 한 후 잊어 버린 것일 수 있습니다. ~/.zshrc에 대한 별칭 정의를 확인하십시오 rm. 하나를 찾으면 제거하십시오. 찾지 못한 경우 별명을 제거하는 명령을 추가하십시오.

unalias rm

6

이중 검증을 비활성화하는 올바른 명령은 setopt rm_star_silent입니다. 이중 검증을 활성화하려면를 수행하십시오 setopt no_rm_star_silent.

자세한 내용은 zshoptions man zshoptions또는 http://linux.die.net/man/1/zshoptions 매뉴얼 페이지를 참조 하십시오.


또는unsetopt rm_star_silent
— evandrix

1

oh-my-zsh를 사용하는 경우 공통 별명 플러그인에는 rm -i 별명이 포함됩니다.

https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/common-aliases/common-aliases.plugin.zsh


1
이 링크가 질문에 대한 답변을 제공 할 수 있지만 여기에 답변의 필수 부분을 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않을 수 있습니다. - 리뷰에서
— jayhendren

@jayhendren-그것은 문서에 대한 링크가 아니라 문제를 해결하기 위해 설치할 무언가에 대한 링크입니다 ...
— Wouter Verhelst
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.