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.