.bashrc 및 .zshrc를 다시 가져오고 다시 시작하지 않고도 해당 기능을 삭제할 수 있습니까?

.bashrc 및 .zshrc를 다시 가져오고 다시 시작하지 않고도 해당 기능을 삭제할 수 있습니까?

거기에 기능이 있었는데 .zshrc삭제했어요.

.zshrc이제 가져오려고 하면 가져오지만 한때 존재했던 기능을 메모리에서 제거하지는 않습니다.

내 컴퓨터를 재부팅하지 않고 이 기능을 제거할 수 있는 방법이 있습니까(이제는 메모리, zsh 네임스페이스 등을 믿습니다)?

답변1

unhash -f functionnamezsh에서는 기능을 사용하거나 제거할 수 있습니다 unfunction functionname.

그러나 이것은 주어진 시작 파일에서 제거한 기능을 자동으로 정리하지 않습니다. 왜냐하면 쉘은 함수를 원래 어디서 얻었는지 기억하지 못하고 동일한 파일을 다시 얻는 데 특별한 의미를 부여하지 않기 때문입니다. 그러므로 무엇을 잊고 싶은지 알아야 합니다.

.bashrc주제에서 언급했듯이 bash에 해당하는 것은 다음과 같습니다 .unset -f functioname

답변2

unhash -mf "*"모든 기능을 삭제하는 데 사용할 수 있습니다.
표준 zsh 장점을 제거하므로 /etc/zsh/zshrc.

내 .zshrc의 시작 부분에는 다음이 있습니다.

# Clear all functions and aliases
unhash -mf "*"
unhash -ma "*"
. /etc/zsh/zshrc  # reload standard functions and aliases

관련 정보