С GNU find
:
find . -name "* *" \( -type f -o -type d \) -execdir rename -v 's/ /_/g' {} +
Это ищет обычные файлы и каталоги, содержащие в своих именах пробел, используя ваш текущий каталог (.
) в качестве начального каталога, и рекурсивно переименовывает их. Я только добавил флаг -v
erbose, чтобы вы могли видеть, что происходит.
Чтобы вывести список файлов и каталогов, на которые будет влиять команда, удалите часть -execdir
:
find . -name "* *" \( -type f -o -type d \)
Конечно, вы можете заменить .
на абсолютный или относительный путь.