Нужна помощью по *nix'ам. Рекурсивный обход каталогов.

grey109
На сайте с 15.06.2005
Offline
144
930

Нужно имена всех файлов в каталогах и подкаталогах перевести в нижний регистр. Нашел скрипт:

for x in *;
do mv $x `echo $x | tr [A-Z] [a-z]`;
done

Скрипт вроде бы работает, но меняет регистр файлов в текущем каталоге, откуда запущен.

Может кто поможет готовым скриптом, делающим тоже самое, но рекурсивно для вложенных каталогов. Сам, я увы, в этом полный ноль :(

Заранее спасибо.

Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#1

find -exec?

С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)
S
На сайте с 24.04.2007
Offline
14
#2

Как-то так:


for SRC in `find . ! -type d`
do
DST=`dirname "${SRC}"`/`basename "${SRC}" | tr '[A-Z]' '[a-z]'`
if [ "${SRC}" != "${DST}" ]
then
[ ! -e "${DST}" ] && mv -T "${SRC}" "${DST}" || echo "${SRC} was not renamed"
fi
done

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий