Verificação dupla de rm no zsh

15

Quando eu faço um rm * no zsh, recebo algo como isto:

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

Primeiro, o zsh me pergunta se tenho certeza de que deseja excluir tudo e, em seguida, rm solicita cada arquivo específico.

Como posso apenas ter a verificação zsh?

ardochhigh
fonte
3
Use rm -f ./*. Por padrão, rmnão pergunta nada, a menos que você não tenha permissão de gravação no arquivo. Talvez você tenha umalias rm='rm -i'
Stéphane Chazelas
Ah, deve ser isso - estou executando as exclusões de dentro de um shell do Vagrant e os arquivos estão hospedados no sistema de arquivos do laptop. Obrigado
ardochhigh
1
Apenas uma nota, ainda zsh instruções em "rm -rf *", este pode ser desativado comsetopt rmstarsilent
Matt

Respostas:

29

A mensagem “zsh: certifique-se de excluir todos os arquivos” é um recurso do zsh, acionado especificamente pela chamada de um comando chamado rmcom um argumento que é *ou something/*antes da expansão da glob. Você pode desativar isso com setopt rm_star_silent.

A mensagem “rm: remove regular file” vem do rmpróprio comando. Ele não vai aparecer por padrão, ele só aparece quando rmé invocado com a opção -i. Se você não quiser esta mensagem, não passe essa opção. Mesmo sem -i, rmsolicita confirmação (com uma mensagem diferente) se você tentar excluir um arquivo somente leitura; você pode remover esta confirmação passando a opção -f.

Como você não passou -ina linha de comando, rmé presumivelmente um alias para rm -i(também pode ser uma função, um comando de invólucro não padrão ou um alias diferente, mas o alias rm -ié de longe o mais plausível). Algumas configurações padrão incluem alias rm='rm -i'em seus arquivos de inicialização do shell; isso pode ser algo que sua distribuição ou administrador do sistema configurou, ou algo que você pegou de algum lugar e adicionou ao seu arquivo de configuração e esqueceu. Verifique se ~/.zshrchá uma definição de alias para rm. Se você encontrar um, remova-o. Se você não encontrar um, adicione um comando para remover o alias:

unalias rm
Gilles 'SO- parar de ser mau'
fonte
6

O comando correto para desativar a verificação dupla parece ser setopt rm_star_silent. Para ativar a verificação dupla, faça setopt no_rm_star_silent.

Para informações mais detalhadas, consulte a página de manual do zshoptions man zshoptionsou http://linux.die.net/man/1/zshoptions


fonte
ouunsetopt rm_star_silent
evandrix 30/01/19
1

Se você estiver usando oh-my-zsh, o plugin common-aliases incluirá o alias rm -i.

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

woohoou
fonte
1
Embora esse link possa responder à pergunta, é melhor incluir aqui as partes essenciais da resposta e fornecer o link para referência. As respostas somente para links podem se tornar inválidas se a página vinculada for alterada. - Da avaliação
jayhendren /
@jayhendren - não é um link para a documentação, é um link para algo instalar para corrigir o problema ...
Wouter Verhelst