Предположим, что перед нами стоит задача во всех файлах с расширением ".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
Предупреждение. Если количество файлов отличается от нуля меньше, чем на машинный эпсилон, то городить вышеприведённый огород нет никакого смысла!