Задать вопрос
@kavabangaungava

Как заменить нижнее подчеркивание на пробел в имени файла?

Переименовать файл, заменив нижние подчёркивания на пробел можно так:

rename "s/_/ /g" *

Но, данный метод не удобен тем, что rename не является штатной утилитой.

Пробую другим способом, получаю Permission denied:

find . -type f -name '*_*' -exec bash -c `mv "$0" "${0/_/ / }"` {} \;
mv: invalid option -- 'a'
Try 'mv --help' for more information.
bash: line 1: ./ww_ee_rr_yy.file: Permission denied
bash: line 1: ./ww_ee_rr_yy_dd.file: Permission denied


Без данной конструкции, mv прекрасно переименовывает файлы
  • Вопрос задан
  • 490 просмотров
Подписаться 3 Простой Комментировать
Решения вопроса 1
find -type f -name '*_*' | xargs -n1 bash -c 'mv "$0" "${0//_/ }"'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
xotkot
@xotkot
ответы это убийцы вопросов
find . -type f -name '*_*' -exec sh -c 'x="{}";mv "$x" "${x//_/ }"' \;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы