@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 прекрасно переименовывает файлы
  • Вопрос задан
  • 275 просмотров
Решения вопроса 1
@xibir
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//_/ }"' \;
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы