Поддержка > Руководства и инструкции
Групповое переименование файлов
(1/1)
volandlm:
Предположим, что перед нами стоит задача во всех файлах с расширением ".ext", в достаточно разветвлённом дереве каталогов, заменить пробел на нижнее подчёркивание. Зачем? А просто нам захотелось разместить эти файлы в сети Интернет. Но ведь тогда все пробелы в ссылках будут заменены на "%20", что не "есть хорошо". Поэтому, без лишних слов, приступим к решению поставленной задачи.
Поскольку мы выбрали для использования unix-like систему, то решать задачу будем в консоли. Как известно, консоль является самой сильной стороной таких операционных систем. Поэтому и будем использовать её для всех задач, для которых это возможно, и оставим графические свисто-перделки для работы с видео и графикой.
Для начала нам нужно найти все такие файлы с нужным расширением (предполагается, что мы уже находимся на вершине нужного дерева каталогов, то есть выполнили команду cd /user/directory):
--- Код: ---find . -name "*.ext" | grep "\ "
--- Конец кода ---
Далее, будем просматривать все найденные файлы в цикле по одному:
--- Код: ---while read i; do "заменять_пробелы"; done
--- Конец кода ---
Далее, собственно замена пробелов:
--- Код: ---mv "$i" "`echo $i | sed s/\ /_/g`"
--- Конец кода ---
Теперь, когда стало ясно, "кто на ком стоял", объединим все шаги в одну последовательность:
--- Код: ---find . -name "*.ext" | grep "\ " | while read i; do mv "$i" "`echo $i | sed s/\ /_/g`"; done
--- Конец кода ---
Предупреждение. Если количество файлов отличается от нуля меньше, чем на машинный эпсилон, то городить вышеприведённый огород нет никакого смысла!
Навигация
Перейти к полной версии