- unixforum.org
- Переименование части названия файла
- Переименование части названия файла
- Re: Переименование части названия файла
- Переименовать файл linux по маске
- Переименовать файл linux по маске
- Как переименовать файлы и каталоги в Linux
- How to Rename Files and Directories in Linux
- В этом уроке мы покажем вам , как использовать mv и rename команды для переименования файлов и каталогов.
- Переименование файлов с помощью mv команды
- Переименование нескольких файлов с помощью mv команды
- Переименование файлов с помощью rename команды
- Вывод
- KRename: пакетное переименование файлов в Linux
unixforum.org
Форум для пользователей UNIX-подобных систем
- Темы без ответов
- Активные темы
- Поиск
- Статус форума
Переименование части названия файла
Модератор: /dev/random
Переименование части названия файла
Сообщение fireboltgp » 22.10.2013 13:39
Приветствую и благодарю всех, появивших интерес!
Задача моя очень проста: переименовать «name- daily-backup.tgz» в «name- weekly-backup.tgz» (сменить daily на weekly в названии файлов). Да только вот гугл не нашел прямого ответа на мой вопрос. Попытки прочесть man sed’a навели страх, и тратить время на изучение пугающего не хочется, ибо слишком долго Прошу показать конкретные параметры для sed’a на примере
Другие варианты выполнения задачи тоже интересны
Re: Переименование части названия файла
Сообщение SLEDopit » 22.10.2013 13:48
Не надо так делать. Парсить ls сам по себе плохо.
Ну и формировать команды sed’ом тогда, когда без этого можно вполне обойтись, тоже не есть хорошо (и, кстати, последний пайп с sh вполне можно заменить на sed’овскую команду е, если sed gnu’тый).
В данном случае я бы обратил внимание на команду rename. В моём дистрибутиве то, что вы хотите выглядело бы так:
Однако перед применением, всё же почитайте man rename, поскольку в разных дистрибутивах устновлены разные rename (не разные версии, а именно разные программы с одинаковым названием). Могут быть отличия.
Ну, или на худой конец, переименовал бы на чистом bash:
Источник
Переименовать файл linux по маске
Итак, у нас есть куча файлов, среди которых надо навести порядок. Для этого сделаем групповое переименование.
Rename
Утилита rename входит в стандартную поставку Debian, так что начнем с нее.
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
-v отобразить имена успешно переименованных файлов.
-n отобразить список файлов, которые будут переименованы, без переименования в итерации.
-f перезаписать уже существующие файлы.
perlexpr — шаблон для переименования.
Для того, чтобы выполнить переименование файлов согласно условию, выполним команду:
# rename ‘s/.sh/.sh.bak/g’ *.sh
Рассмотрим perlexr подробнее:
s=указывает, что требуется замещение.
/.sh/=Строка, которую будем замещать.
/.sh.bak/ = строка, на которую будем замещать
g=global, будем замещать все найденные вхождения.
С помощью rename можно быстро изменить регистр файлов. Например поднимем регистр файлов из примера:
MMV
mmv — программа для массового перемещения, переименования, копирования, объединения файлов.
По умолчанию она не включена в состав Debian. Поставим ее:
# apt-get install mmv
Наша задача решается одной строкой:
MV
Теперь решим нашу задачу стандартной командой mv. Для этого нам прийдется немного попрограммировать в bash.
for i in *.sh;
do mv $i `basename $i sh`sh.bak;
done
Попробуем усложить задачу. Например у нас есть куча файлов JPG:
1234234.jpg
e456567657.jpg
234df34.jpg
…
Мы хотим привести их к следующему виду:
file1.jpg
file2.jpg
file3.jpg
…
j=0;
for i in *.jpg;
do let j+=1;
mv $i file$j.jpg ;
done
В любимом многими mc, процесс переименования по маске выполняется просто и непринужденно в два действия.
1. Через + выбираем файлы по маске *.sh
2. Нажимаем F6 и в destination указываем *.sh.bak
Все примеры, приведенные выше, так или иначе работают во всех Linux, BSD, Mac OS, если стоят соответствующие утилиты.
Источник
Переименовать файл linux по маске
При выполнении операций копирования и перемещения (или переименования) файлов вы имеете возможность изменить имена копируемых или перемещаемых файлов. Для этого вы должны задать маску для имен файлов-источников и маску для имен файлов, которые будут созданы (файлы-приемники). Обычно эта вторая маска представляет собой несколько символов замены (wildcards) в конце строки, определяющей место назначение создаваемых файлов. Задание масок осуществляется в строках ввода, отображаемых в окне, появляющемся после обращения к командам копирования / переноса (рис. 6.6).
Все файлы, удовлетворяющие маске источника, будут переименованы (скопированы или перемещены с новыми именами) в соответствии с маской файла-приемника. Если имеются помеченные файлы, то копируются (перемещаются) только помеченные файлы, удовлетворяющие заданной маске для файлов-источников.
Рис. 6.6. Диалоговое окно для переименования файлов
Есть еще несколько опций, которые влияют на выполнение операций копирования/перемещения файлов, и которые устанавливаются в том же окне запроса, где задаются маски имен файлов, либо через команду меню Настройки | Конфигурация .
Опция Разименовывать ссылки (Follow links) определяет, будут ли при копировании жестких или символических ссылок в каталоге-приемнике (и рекурсивно в подкаталогах) создаваться такие же ссылки, или будут копироваться файлы (и подкаталоги), на которые эти ссылки указывают.
Опция Внутрь каталога, если есть (Dive into subdirs) определяет, что делать, если в каталоге-приемнике уже существует подкаталог, имя которого совпадает с именем файла (каталога), который копируется (источника). По умолчанию (опция отключена) содержимое каталога-источника копируется в каталог-приемник. Если опция включена, то в каталоге приемнике будет создан новый подкаталог с тем же именем, в который и будет осуществляться копирование.
Лучше показать это на примере. Пусть вы хотите скопировать содержимое каталога one в каталог /two/one, который уже существует. Обычно (опция отключена) mc будет просто копировать все файлы из one в /two/one. Если опцию включить, копирование файлов будет производиться в /two/one/one.
Опция Сохранять атрибуты (Preserve attributes) определяет, будут ли при копировании/перемещении сохранены атрибуты исходного файла: права доступа, временные метки и, если вы root, UID и GID исходного файла. Если опция отключена, атрибуты будут установлены в соответствии с текущим значением umask.
На процедуры копирования и перемещения файлов оказывает также влияние установка опции Образцы в стиле shell в меню Настройки / Конфигурация. Когда эта опция включена, вы можете использовать символы замены (wildcards) ‘*’ и ‘?’ в маске источника. Они обрабатываются аналогично тому, как это делается в shell. В маске приемника разрешается использовать только ‘*’ и ‘\ цифра > ‘. Первый символ ‘*’ в маске приемника соответствует первой группе символов замены в маске источника, второй символ ‘*’ соответствует второй группе и т. д. Аналогично, символ замены ‘\1’ соответствует первой группе символов замены в маске источника, символ ‘\2’ — второй группе и т. д. Символ ‘\0’ соответствует целому имени файла-источника. Приведем пару примеров.
Пример 1 . Если маска источника «*.tar.gz», а маска приемника — «/two/*.tgz», и имя копируемого файла — «foo.tar.gz», копия будет называться «foo.tgz» и будет находиться в каталоге «/two».
Пример 2. Предположим, вы хотите поменять местами имя и расширение файла, так чтобы «file.c» стал файлом «c.file». Маска источника для этого должна иметь вид «*.*», а маска приемника — «\2.\1».
Когда опция Образцы в стиле shell ( » Use shell patterns ” ) выключена, mc не осуществляет автоматической группировки. Для указания групп символов в маске источника, которые будут соответствовать символам замены в маске приемника, вы должны в этом случае использовать скобки ‘\(. \)’. Этот способ более гибкий, но требует больше усилий при вводе. Снова приведем два примера
Пример 3 . Если маска источника имеет вид «^\(.*\)\.tar\.gz$», копирование производится в «/two/*.tgz» и копируется файл «foo.tar.gz», то результатом будет «/two/foo.tgz».
Пример 4 . Предположим, что вы хотите поменять местами имя файла и его расширение, так чтобы имена вида «file.c» приняли вид «c.file».
Маска источника для этого — «^\(.*\)\.\(.*\)$», а маска приемника — «\2.\1».
При выполнении операций копирования/перемещения вы можете также преобразовать регистр символов в именах файлов. Если вы используете ‘\u’ или ‘\l’ в маске приемника, то следующий символ имени будет образован в верхнем (заглавные символы) или нижнем (строчные) регистре соответственно.
Если использовать в маске приемника ‘\U’ или ‘\L’, то к соответствующему регистру будут преобразованы все последующие символы, вплоть до следующего вхождения ‘\L’ или ‘\U’, или же до конца имени файла.
Применение ‘\u’ и ‘\l’ обеспечивает более широкие возможности, чем ‘\U’ и ‘\L’.
Например, если маска источника есть ‘*’ (опция Образцы в стиле shell включена) или ‘^\(.*\)$’ (опция Образцы в стиле shell выключена), а маска приемника есть ‘\L\u*’, имена файлов будут преобразованы таким образом, что первые буквы имени будут заглавными, а все остальные — строчными.
Символ ‘\’ в масках используется для отмены специальной интерпретации отдельных символов. Например, ‘\\’ означает просто обратный слэш (как литерал) и ‘\*’ означает просто звездочку (asterisk).
Источник
Как переименовать файлы и каталоги в Linux
How to Rename Files and Directories in Linux
В этом уроке мы покажем вам , как использовать mv и rename команды для переименования файлов и каталогов.
Переименование файлов и каталогов является одной из самых основных задач, которые вам часто приходится выполнять в системе Linux. Вы можете переименовывать файлы, используя файловый менеджер с графическим интерфейсом или через терминал командной строки.
Переименовать один файл легко, но переименование нескольких файлов одновременно может быть проблемой, особенно для пользователей, которые являются новичками в Linux.
Переименование файлов с помощью mv команды
mv Команда ( не хватает хода) используется для переименования или перемещения файлов из одного места в другое. Синтаксис mv команды следующий:
source Может быть один или несколько файлов или каталогов и destination может быть один файл или каталог.
- Если вы указываете несколько файлов как source , destination должен быть каталог. В этом случае source файлы перемещаются в целевой каталог.
- Если вы указываете один файл как source , а destination целью является существующий каталог, то файл перемещается в указанный каталог.
- Чтобы переименовать файл, вам нужно указать один файл как source и один файл как destination цель.
Например, чтобы переименовать файл так, file1.txt как file2.txt вы запустите:
Переименование нескольких файлов с помощью mv команды
Команда mv может переименовывать только один файл за раз, но ее можно использовать вместе с другими командами, такими как find или внутри bash for или while циклов, для переименования нескольких файлов.
В следующем примере показано, как использовать цикл Bash for для переименования всех .html файлов в текущем каталоге, изменив .html расширение на .php .
- Первая строка создает for цикл и перебирает список всех файлов, окантованных .html .
- Вторая строка применяется к каждому элементу списка и перемещает файл в новый, заменяя его .html на .php . Часть $
использует расширение параметра оболочки, чтобы удалить .html часть из имени файла. - done указывает на конец сегмента цикла.
Вот пример использования mv в сочетании с find для достижения того же, что и выше:
Как видно из приведенных выше примеров, переименование нескольких файлов с помощью mv команды — непростая задача, поскольку требует хорошего знания сценариев Bash.
Переименование файлов с помощью rename команды
Команда rename используется для переименования нескольких файлов. Эта команда более сложна, чем mv она требует базовых знаний о регулярных выражениях.
Существует две версии rename команды с разным синтаксисом. В этом уроке мы будем использовать версию команды Perl rename . Если у вас не установлена эта версия в вашей системе, вы можете легко установить ее, используя менеджер пакетов вашего дистрибутива.
Установить rename на Ubuntu и Debian
Установить rename на CentOS и Fedora
Установить rename на Arch Linux
Синтаксис rename команды следующий:
Команда rename переименует в files соответствии с указанным perlexpr регулярным выражением. Вы можете прочитать больше о регулярных выражениях perl здесь .
Следующий пример изменит все файлы с расширением .html на .php :
Вы можете использовать -n опцию для печати имен файлов, которые будут переименованы, без переименования их.
Вывод будет выглядеть примерно так:
По умолчанию rename команда не перезаписывает существующие файлы. Передайте -f опцию, чтобы разрешить перезаписывать существующие файлы:
Ниже приведены еще несколько распространенных примеров использования rename команды:
Заменить пробелы в именах файлов подчеркиванием
Преобразование имен файлов в нижний регистр
Преобразовать имена файлов в верхний регистр
Вывод
Мы показали вам , как использовать mv и rename команды для переименования файлов.
Конечно, есть другие команды для переименования файлов в Linux, такие как mmv . Новые пользователи Linux, которых пугает командная строка, могут использовать инструменты пакетного переименования GUI, такие как Métamorphose .
Источник
KRename: пакетное переименование файлов в Linux
Давненько не было ликбезов по возможностям программ GNU/Linux. В этой статье рассмотрим утилиту KRename, при помощи которой можно делать массовые переименования файлов через удобный графический интерфейс.
Время менять имена
Пакетное или групповое переименование файлов — тема, на первый взгляд, не очень серьёзная. Но это до поры, пака не приспичит переименовать гору файлов, например, с фотокамеры, чтобы привести их название к более человеческому виду. И тут, как говорится, дорога ложка к обеду.
На самом деле условия, согласно которым бывает нужно переименовать большую группу файлов, случаются очень заковыристыми. Очень часто при переименовании файлов может потребоваться использование метаинформации, внутрифайловых тегов и других данных.
В системах GNU/Linux для решения этой задачи имеется много утилит, которые могут помочь линуксоиду. В первую очередь это консольные утилиты, не говоря уже о командной оболочке shell, которая является практически языком программирования, и при помощи скриптов которого можно осуществлять массовое переименование файлов.
Например, обычно в составе любой системы GNU/Linux всегда входит консольная утилита rename, которая обладает гибкими возможностями по переименованию файлов при помощи регулярных выражений (регэкспов). Для пакетного переименования файлов часто также используют ещё одну консольную утилиту mmv, которая работает на основе шаблонов. С другой стороны, чтобы этой мощью воспользоваться, нужно уметь работать с регулярными выражениями и текстовыми шаблонами.
Однако, скорее всего, рядовой пользователь будет искать утилиту с графическим интерфейсом. И такие программы в GNU/Linux имеются — Gprename, Gwenrename, KRename. Наиболее удобной графической утилитой, по мнению многих пользователей, является KRename.
Осваиваем KRename
KRename — бесплатный инструмент пакетного переименования файлов для UNIX систем. Основное преимущество KRename — это графический не сложный интерфейс. Но при этом программа предоставляет большой набор возможностей, позволяющий делать сложные вещи даже не самым опытным пользователям. Среди самых примечательных операций — смена регистра, нумерация, мощный поиск и замена; изменение даты доступа и модификации, прав и владельцев файлов. Самые подкованные пользователи могут работать с регулярными выражениями и шаблонами имён файлов.
KRename — это утилита из состава КДЕ. Текущая версия программы 4.0.9.
Следует сказать, что KRename зависит от библиотек KDE и при установке будет требовать установить эти библиотеки в качестве зависимостей. Что можно даже рассматривать как некоторое неудобство для тех пользователей, которые не используют KDE и не любят «засорять» систему «инородными» компонентами.
Из реальных же недостатков программы можно отметить не полную локализацию программы на русский язык. То есть одни элементы интерфейса будут на английском, а другие на русском языке.
Программа работает в режиме мастера, который за несколько шагов позволяет переименовать группу файлов. Каждый шаг связан с одной из вкладок программы, которые и рассмотрим.
После запуска KRename первым шагом, само собой, является выбор файлов. Делается это во вкладке Files, где нужно выбрать соответствующий каталог с файлами. После чего, если нужно, при помощи кнопок «Добавить», «Удалить» отсортировать список файлов. При помощи списка «Сортировка» можно упорядочить список файлов по возрастанию, убыванию, дате в символьном или числовом значении.
Вторым шагом является выбор конечной папки во вкладке Destination. Здесь можно переименовать исходные файл прямо в исходной папке, переместить в другой каталог, сделать копии файлов или же создать ссылки с новыми именами на оригинальные файлы.
На третьей вкладке Plugins находится список различных плагинов, при помощи которых можно определять многие параметры, необходимые для переименования. Например, при помощи этих плагинов можно осуществлять переименование согласно exif-информации в фотографиях или же тэгов в аудиофайлах. Некоторые плагины не активированы, и их нужно включить, выбрав плагин из правого списка и поставив галочку напротив чекбокса «Enable plugin».
И последний шаг — это вкладка Filename, где и осуществляется непосредственно процесс переименования файлов. Здесь имеется две дополнительные вкладки для двух режимов работы — простого и расширенного. На вкладке простого режима «Simple Filename» можно в несколько кликов мышью посредством выпадающего меню «Имя» преобразовать имена файлов к другому имени, привести имя к нижнему или верхнему регистру, преобразовать первую букву каждого слова к верхнему регистру. Здесь же можно задать префикс и суффикс для новых имён файлов через одноимённые выпадающие меню. Префикс или суффикс может быть задан датой или номером.
Для более сложных переименований файлов служит вкладка расширенного режима «Advanced Filename». Здесь для переименования создаётся текстовой шаблон в поле «Шаблон». Причём шаблон создаётся автоматически при выборе параметров в обеих вкладках. То есть, выбирая суффикс и префикс в соответствующих выпадающих списках, текстовой шаблон будет создаваться программой автоматически. Если пользователь знает основы регулярных выражений, шаблон можно редактировать вручную.
Также на вкладке расширенного режима имеется кнопка «Функции», посредством которой можно вызвать окно плагинов, позволяющих, как мы говорили использовать для переименования метаинформацию, содержащуюся во многих типах файлов. Не менее интересной функцией на вкладке расширенного режима является функция «Вставить часть имени файла», позволяющая выделить некоторое количество символов в старом имени, чтобы оставить эти символы в новом.
Для примера, допустим нам надо переименовать файлы фотографий с именами вроде IMG_20120720_123812 к более понятному виду. Вместо «IMG» мы хотим подставить, например, строку «Море», дату оставить, а номера типа 123812 преобразовать к более простым цифрам.
- Через вкладки Files и Destination выберем файлы и каталог назначения.
- Сначала во вкладке «Simple Filename» из списка Filename выбираем «Другое имя».
- Переходим во вкладку «Advanced Filename», нажимаем кнопку «Функции» и здесь из левого списка плагинов выбираем «Date and system function», после чего выбираем из правого списка [creationdate] — это параметр даты создания файла
- Обратно переходим во вкладку «Simple Filename». В выпадающем списке «Префикс» выбираем пустую строку и в текстовом поле напротив записываем «Море_». А в выпадающем списке «Суффикс» выбираем «Номер» для добавления нумерации в имена файлов.
- Здесь же, используя кнопку «Find and Raplace» можно заменить или убрать определённые символы в новом шаблоне имени. В нашем случае можно удалить тире в формате даты.
Все действия над именами файлов тут же будут отображаться в нижнем окне программы. Также можно посмотреть получившийся шаблон замены во вкладке «Advanced Filename». В случае нашего примера шаблон будет выглядеть так: Море_[creationdate]_#0. Этот шаблон можно и подредактировать при желании. После чего остаётся только нажать кнопку «переименовать».
Источник