Linux 命令递归地用目录名称中的 -(破折号)替换空格?

Linux command to replace spaces with -(dash) from directories name recursevily?

如何使用命令行将 Linux 目录名中的空格替换为 -(破折号)?

注意:有数百个目录,而且每个目录都有子目录。

我试过下面的命令,但它 return 一条消息 'call: rename from to files...' 并且所有名称仍未更改.

find /home/jjj/ddd -name "* *" -type d | rename 's/ /-/g'

我想将“目录名称”更改为“目录名称”。

您可以尝试使用 shell 而不是重命名

find /home/jjj/ddd -depth -name "* *" -type d -print0 | while read -d $'[=10=]' dir; do mv -v "$dir" "${dir// /-}"; done

added -depth to make it proper as per requirement.