Linux: как рекурсивно заменить пробелы в названии файлов и директорий

Файлы с пробелами в имени иногда неудобно обрабатывать в скриптах, поэтому я стараюсь их не использовать. Но если есть директория, в которой находятся файлы с пробелами в именах, и хочется их все переименовать так, чтобы вместо пробелов использовались, например, символы подчеркивания, то в Linux это легко сделать с помощью утилиты find:
find /path_to_dir/ -depth -name "* *" -execdir rename 's/ /_/g' "{}" \;
Флаг -depth указывает утилите, что сначала надо обрабатывать содержимое текущей директории, а только потом саму директорию (что позволяет нам сначала переимновать все файлы внутри директории и только потом ее саму); флаг -execdir позволяет выполнить слудующую за ним команду из текущей директории; rename - утилита, установленная в Ubuntu по умолчанию. В итоге find ищет в заданной директории все файлы и поддиректории с пробелами в именах, а rename - заменяет пробелы на подчеркивания.

Комментариев нет :

Отправить комментарий