Posting this for my own reference.
How to rename the full name of the files by replacing '/' (slash) with '_' (underscore) using zmv in zsh
$ zmv '(**/)(*.txt)' '${1//\//_}${2}'
The first pattern (**/) ensure that you go inside all subdirectories recursively,
the second pattern (*.txt) restricts this operation to only those files ending with ".txt".
${1//\//_} ensure that you replace every '/' in the first pattern to '_' .
How to rename the full name of the files by replacing '/' (slash) with '_' (underscore) using zmv in zsh
$ zmv '(**/)(*.txt)' '${1//\//_}${2}'
The first pattern (**/) ensure that you go inside all subdirectories recursively,
the second pattern (*.txt) restricts this operation to only those files ending with ".txt".
${1//\//_} ensure that you replace every '/' in the first pattern to '_' .