История изменений
Исправление Zmicier, (текущая версия) :
что я написал в открывающем тему посте, это реально работающий скрипт.
Что не отменяет того, что он ужасен.
Нужно просто добавить нечто, чтобы он по всем ... прошелся.
Со всей очевидностью это «нечто» зовется рекурсией.
Ладно, держите набросок. Не проверял, могут быть ошибки вплоть до синтаксических.
#!/bin/bash
shopt -s nullglob
cd "$1"
for filename in *; do
newfilename="${filename//[^.[:alnum:]]/_}"
newfilename="${newfilename,,}" # to lowercase
[[ "$filename" != "$newfilename" ]] \
&& mv -- "./$filename" "./$newfilename"
done
for dirname in */; do
"$0" "$dirname"
done
Исправление Zmicier, :
что я написал в открывающем тему посте, это реально работающий скрипт.
Что не отменяет того, что он ужасен.
Нужно просто добавить нечто, чтобы он по всем ... прошелся.
Со всей очевидностью это «нечто» зовется рекурсией.
Держите набросок вообще без файнда. Не проверял, могут быть ошибки вплоть до синтаксических.
#!/bin/bash
shopt -s nullglob
cd "$1"
for filename in *; do
newfilename="${filename//[^.[:alnum:]]/_}"
newfilename="${newfilename,,}" # to lowercase
[[ "$filename" != "$newfilename" ]] \
&& mv -- "./$filename" "./$newfilename"
done
for dirname in */; do
"$0" "$dirname"
done
Исходная версия Zmicier, :
что я написал в открывающем тему посте, это реально работающий скрипт.
Что не отменяет того, что он ужасен.
Нужно просто добавить нечто, чтобы он по всем ... прошелся.
Со всей очевидностью это «нечто» зовется рекурсией.
Ладно, держите набросок. Не проверял, могут быть ошибки вплоть до синтаксических.
#!/bin/bash
shopt -s nullglob
cd "$1"
for filename in *; do
newfilename="${filename//[^.[:alnum:]]/_}"
newfilename="${newfilename,,}" # to lowercase
[[ "$filename" != "$newfilename" ]] \
&& mv -- "./$filename" "./$newfilename"
done
for dirname in */; do
"$0" "$dirname"
done