Код: Выделить всё
find . -type f | grep ' ' > file
for i in $(cat file); do mv $i `echo $i | tr ' ' '_'`;done
and
find . -type f | grep ' ' | sed -e 's/ /\\ /g' > file
for i in $(cat file); do mv $i `echo $i | tr ' ' '_'`;done
and
find . -type f | grep ' ' | sed -e 's/ /qq/g' > file
for i in $(cat file); do mv `echo $i | sed -e 's#qq#\\ #g'` `echo $i | sed -e 's#qq#_#g';done
Цикл for рассматривает пробелы как разделитель и игнорирует косую черту (\), одинарную кавычку (') и двойную кавычку ("). Но когда я вставляю конкретный файл, например:
Код: Выделить всё
for i in 'a b c'; do echo $i;done
Сбой в команде mv Я не понимаю. mv жалуется, что файл, который я хочу создать, не существует.
Я не могу придумать другой вариант.
Подробнее здесь: https://stackoverflow.com/questions/798 ... a-linuxfor
Мобильная версия