Боремся с пробелами в именах файлов


dm@dm-desktop: ~-Рабочий стол-ambient_389

Пробелы в именах файлов очень часто могут создавать немалый «геморрой». Кто работает в консоли, тот меня поймет. Недавно возникла необходимость массово перекодировать группу видео файлов из одного формата в другой. Но скрипт не сработал, т.к. в именах файлов были эти самые злополучные пробелы.



Чтобы вместо пробелов появились нижние подчеркивания нужно зайти в нужный каталог и выполнить команду либо скрипт. Для этого заходим в каталог, выполнив команду в Терминале:

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

Данная команда в пакетном режиме заменить нижнее подчеркивание на пробел.


Боремся с пробелами в именах файлов: 2 комментария

  1. Здравствуйте! Уж извините меня за то что вопрос не по теме статьи! На торрентах есть множество файлов которые создавались пользователями Windows. В Ubuntu и в других unix есть ограничения на длину имени файлов. Я о кириллических символах. И при скачивании файлов возникает проблема с длиной имени файлов. Как вариант есть возможность переименовать файлы. Но это хорошо когда два или три файла. А если десятки папок? Как с этим недоразумением бороться? Подскажите рецепт.Извините если сумбурно написал свой вопрос!

    1. К сожалению пока не сталкивался с данной проблемой, поэтому не готов ответить. Были проблемы с кракозябрами из-за кодировки, но то другая история и описывалась в блоге.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *