Как удалить пробелы из многих имен файлов в Cygwin

Я надеюсь, что кто-то может мне помочь, мне нужно удалить пробелы (не заменять символами подчеркивания) из нескольких тысяч файлов в системе с cygwin. Могу ли я сделать это из оболочки, используя переименование или mv?

В настоящее время:

файл один.mp3
файл два.mp3

Все файлы должны стать:

файлone.mp3

файлдва.mp3

Спасибо


person GWC    schedule 22.11.2010    source источник


Ответы (2)


Оболочкой Cygwin по умолчанию является bash, так что...

Попробуйте эту командную строку, заменив $DIR каталогом, в котором вы хотите выполнить указанное преобразование, и проверьте вывод:

find $DIR -type f -name '* *' | while read f; do d="${f%/*}"; f="${f##*/}"; echo mv "$d/$f" "$d/${f// }"; done

Если вас устраивают выполняемые команды, просто удалите эхо перед mv и повторите, чтобы выполнить фактическое переименование. Обратите внимание, что это только переименует файлы, но не каталоги.

person thkala    schedule 22.11.2010

В дополнение к приведенному выше ответу на изменение имени файла, вот код для изменения имен каталогов:

find $DIR -type d -name '* *' | while read f; do d="${f%/*}"; f="${f##*/}"; echo mv "$d/$f" "$d/${f// }"; done

Единственное отличие — это четвертый аргумент с начала строки. Буква «f» заменяется на «d», что соответствует файлу и каталогу соответственно.

person ALamp    schedule 26.02.2013