Pergunta

Eu corro sem sucesso na minha .zshrc

unalias rm  
rm() { mv $* /tmp/wastebasket }

Eu fico na inicialização

/Users/Masi/.zshrc:unalias:34: no such hash table element: rm

Eu observei que o problema tabela hash tem sido um bug não resolvido em Ubuntu para run-ajuda. Não estou certo se o bug se aplica ao Mac e rm -command também.

Como você pode obter a notificação off na inicialização?

Foi útil?

Solução

Todo o resto é certo que você simplesmente não tem um apelido. Mais importante:

NÃO fazer isso. Algum dia você vai estar em outra máquina POSIX que segue padrões POSIX (apagar sem "reciclagem"), e você vai casualmente apagar alguma coisa e não temos nenhuma maneira de desfazê-lo. Saiba disciplina rm agora.

Outras dicas

Essa mensagem de erro ocorre porque você está tentando rm unalias e não existe tal apelido.

Uma vez que você pode apelido algo mais do que uma vez sem um erro, eu mudaria seu código seja:

alias rm=x
unalias rm  
rm() { mv $* /tmp/wastebasket }

que garante que rm existe como um alias antes de tentar unalias-lo.

Eu não estou muito familiarizado com zsh, mas talvez seja porque rm não é um apelido, mas na verdade é um utilitário padrão residente em bin /.

Você poderia somente o alias sem tentar unalias pela primeira vez, substituindo qualquer apelido anterior.

Você só deve tentar remover um alias que existe. Criando um alias que é unaliased imediatamente me parece feio. Minha recomendação é teste para rm sendo um alias e unaliasing se assim for.

 case $(type rm) in
     (*alias*) unalias rm;;
 esac

Ou força bruta uso e ignorar stderr com

 unalias rm 2>/dev/null
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top