Você ainda pode usar read , basta imprimir um aviso primeiro. Em zsh , -p indica que a entrada deve ser lida de um coprocess em vez de indicar o prompt a ser usado.
Você pode fazer o seguinte, que é compatível com POSIX:
printf '%s ' 'erase all directories? (y/n)'
read ans