Пробелы в именах файлов очень часто могут создавать немалый «геморрой». Кто работает в консоли, тот меня поймет. Недавно возникла необходимость массово перекодировать группу видео файлов из одного формата в другой. Но скрипт не сработал, т.к. в именах файлов были эти самые злополучные пробелы.
Чтобы вместо пробелов появились нижние подчеркивания нужно зайти в нужный каталог и выполнить команду либо скрипт. Для этого заходим в каталог, выполнив команду в Терминале:
cd /путь к каталогу/
А теперь выполним следующий скрипт, который заменит пробелы на нижнее подчеркивание, либо другой нужный символ:
#!/bin/sh
for i in *.mp4
do
k=`echo ${i}|sed s/' '/'_'/g`
mv "${i}" ${k}
done
Вместо *.mp4 установите свое расширение файлов, в которых нужно совершить изменение имен. Либо можно просто перечислить нужные расширения файлов, тогда скрипт будет иметь следующий вид:
#!/bin/sh
for i in *.mp4 *.txt *.avi *.html *.odt
do
k=`echo ${i}|sed s/' '/'_'/g`
mv "${i}" ${k}
done
Но Linux не был бы Linux, если бы в нем не было массы вариантов для решения проблемы. Поэтому для борьбы с пробелами можно выполнять и другие команды, используя другие утилиты или программы. То же самое сделает команда:
ls | while read i; do mv "$i" ${i//_/ }; done
Или можно использовать утилиту rename:
rename 's/ /_/g' *
Но если вдруг после работы над этими файлами вы хотите снова вернуть пробелы в имена, тогда выполните команду:
rename 's/_/ /gi' *.mp4 *.txt *.avi *.html *.odt
Данная команда в пакетном режиме заменить нижнее подчеркивание на пробел.
Здравствуйте! Уж извините меня за то что вопрос не по теме статьи! На торрентах есть множество файлов которые создавались пользователями Windows. В Ubuntu и в других unix есть ограничения на длину имени файлов. Я о кириллических символах. И при скачивании файлов возникает проблема с длиной имени файлов. Как вариант есть возможность переименовать файлы. Но это хорошо когда два или три файла. А если десятки папок? Как с этим недоразумением бороться? Подскажите рецепт.Извините если сумбурно написал свой вопрос!
К сожалению пока не сталкивался с данной проблемой, поэтому не готов ответить. Были проблемы с кракозябрами из-за кодировки, но то другая история и описывалась в блоге.