Linux command for rename

Как переименовать файл Linux

Переименование файла linux — очень простая операция, но для новичков в Linux эта задача может оказаться сложной. Также здесь есть несколько нюансов и возможностей, которые желательно знать уже опытным пользователям, например, массовое переименование. В графическом интерфейсе все делается очень просто, но настоящую гибкость дает терминал.

В этой статье мы рассмотрим как переименовать файл в Linux с помощью терминала, рассмотрим такие возможности, как массовое пакетное переименование файлов, а также регулярные выражения.

Как переименовать файл в Linux с помощью mv

В Linux существует замечательная стандартная утилита mv, которая предназначена для перемещения файлов. Но по своей сути перемещение — это то же самое, что и переименование файла linux, если выполняется в одной папке. Давайте сначала рассмотрим синтаксис этой команды:

$ mv опции файл-источник файл-приемник

Теперь рассмотрим основные опции утилиты, которые могут вам понадобиться:

  • -f — заменять файл, если он уже существует;
  • -i — спрашивать, нужно ли заменять существующие файлы;
  • -n — не заменять существующие файлы;
  • -u — заменять файл только если он был изменен;
  • -v — вывести список обработанных файлов;

Чтобы переименовать файл linux достаточно вызвать утилиту без дополнительных опций. Просто передав ей имя нужного файла и новое имя:

Как видите, файл был переименован. Вы также можете использовать полный путь к файлу или переместить его в другую папку:

mv /home/sergiy/test/newfile /home/sergiy/test/file1

Обратите внимание, что у вас должны быть права на запись в ту папку, в которой вы собираетесь переименовывать файлы. Если папка принадлежит другому пользователю, возможно, нужно будет запускать программу через sudo. Но в таком случае лучше запускать с опцией -i, чтобы случайно ничего не удалить.

Переименование файлов Linux с помощью rename

В Linux есть еще одна команда, которая позволяет переименовать файл. Это rename. Она специально разработана для этой задачи, поэтому поддерживает такие вещи, как массовое переименование файлов linux и использование регулярных выражений. Синтаксис утилиты тоже сложнее:

Читайте также:  Draw io для linux

$ rename опции ‘s/ старое_имя / новое_имя ‘ файлы

$ rename опции старое_имя новое_имя файлы

В качестве старого имени указывается регулярное выражение или часть имени которую нужно изменить, новое имя указывает на что нужно заменить. Файлы — те, которые нужно обработать, для выбора файлов можно использовать символы подставки, такие как * или ?.

  • -v — вывести список обработанных файлов;
  • -n — тестовый режим, на самом деле никакие действия выполнены не будут;
  • -f — принудительно перезаписывать существующие файлы;

Например, переименуем все htm файлы из текущей папки в .html:

Символ звездочки означает, что переименование файлов linux будет выполнено для всех файлов в папке. В регулярных выражениях могут применяться дополнительные модификаторы:

  • g (Global) — применять ко всем найденным вхождениям;
  • i (Case Censitive) — не учитывать регистр.

Модификаторы размещаются в конце регулярного выражения, перед закрывающей кавычкой. Перед тем, как использовать такую конструкцию, желательно ее проверить, чтобы убедиться, что вы не допустили нигде ошибок, тут на помощь приходит опция -n. Заменим все вхождения DSC на photo в именах наших фотографий:

rename -n ‘s/DSC/photo/gi’ *.jpeg

Будут обработаны DSC, DsC и даже dsc, все варианты. Поскольку использовалась опция -n, то утилита только выведет имена изображений, которые будут изменены.

Можно использовать не только обычную замену, но и полноценные регулярные выражения чтобы выполнить пакетное переименование файлов linux, например, переделаем все имена в нижний регистр:

Из этого примера мы видим, что даже если такой файл уже существует, то он перезаписан по умолчанию не будет. Не забывайте использовать опцию -n чтобы ничего случайно не повредить.

Переименование файлов в pyRenamer

Если вы не любите использовать терминал, но вам нужно массовое переименование файлов Linux, то вам понравится утилита pyrenamer. Это графическая программа и все действия здесь выполняются в несколько щелчков мыши. Вы можете установить ее из официальных репозиториев:

sudo apt install pyrenamer

В окне программы вы можете видеть дерево файловой системы, центральную часть окна, где отображаются файлы, которые будут изменены, а также панель для указания параметров переименования.

Вы можете удалять или добавлять символы, переводить регистр, автоматически удалять пробелы и подчеркивания. У программы есть подсказки, чтобы сделать ее еще проще:

Опытным пользователям понравится возможность pyRenamer для переименования мультимедийных файлов из их метаданных. Кроме того, вы можете переименовать один файл если это нужно. Эта утилита полностью реализует функциональность mv и remove в графическом интерфейсе.

Читайте также:  Env variables linux bash

Выводы

В этой статье мы рассмотрели как переименовать файл в консоли linux. Конечно, есть и другие способы, например, написать скрипт, или использовать файловые менеджеры. А как вы выполняете сложные операции по переименованию? Напишите в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Linux rename command

Computer Hope

On Unix-like operating systems, the rename command renames multiple files, using regular expressions. It was written by Larry Wall, creator of the Perl programming language.

Description

rename renames the named files according to the regular expression perlexpr.

If a specified file is not modified by the expression, it is not renamed. If no file names are given on the command line, file names are read via standard input.

Syntax

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

Options

-v, —verbose Verbose: print names of files successfully renamed.
-n, —no-act No Action: show what files would be renamed.
-f, —force Force: overwrite existing files.

Perl expressions: a quick overview

The perlexpr argument is a regular expression as used by the Perl programming language. Perl regular expressions is a complex and nuanced subject, but here is a brief overview:

Substitution

To substitute one expression for another, the form of perlexpr is:

s/expr1/expr2/[gi]

. where expr1 is an expression describing the string you want to replace, and expr2 is an expression describing the string you want to replace. For instance,

. would substitute the first occurrence of the string ‘silly‘ with the string ‘foolish‘.

To perform global substitution (that is, to substitute expr2 for expr1 as often as expr1 occurs), add the modifier g at the end of the substitution expression. For instance:

. would substitute every occurrence of ‘silly‘ with ‘foolish‘, no matter how often it occurs.

To perform matching in a case-insensitive manner, add an i at the end of the substitution expression. For instance,

Читайте также:  Vmware workstation linux ubuntu install

. would substitute ‘SILLY‘, ‘Silly‘, or ‘siLLY‘ with ‘foolish‘.

The g and i modifiers may both be specified in the same expression, to perform case-insensitive global substitution, for example:

Metacharacters

A metacharacter is a character (or characters) with a special meaning. They are used in an expression to precisely define which strings should be matched and replaced.

These are some common metacharacters used in a Perl Expression:

Translation

Translation is similar to substitution. It can translate one string to another, character-for-character. Translation expressions are specified as follows:

y/charset1/charset2/

. where each character in the set charset1, in order, is to be translated into the corresponding character from the character set charset2. (These sets are like the character sets above, except you don’t need to put them in brackets.) For example, the translation expression:

. would translate every letter a into the letter d, every b into an e, etc.

This also works for charsets defined as ranges. For example:

. would translate every lowercase letter into its uppercase equivalent.

Examples

Rename any files with the extension «.jpeg» to have the extension «.jpg«.

find -type f -name '*.jpg' | rename 's/holiday/honeymoon/'

For all files with the extension «.jpg«, if they contain the string «holiday«, replace it with «honeymoon«. For instance, this command would rename the file «ourholiday001.jpg» to «ourhoneymoon001.jpg«.

This example also illustrates how to use the find command to send a list of files (-type f) with the extension .jpg (-name ‘*.jpg’) to rename via a pipe (|). rename then reads its file list from standard input.

Rename all files matching «*.bak» to strip the file name of its extension. For instance, this command would rename the file «project.bak» to «project«.

Rename files such that all uppercase letters are changed to their lowercase equivalents.

mv — Move files and directories from one location to another, and optionally rename them.
perl — Interpreter for the Perl programming language.

Источник

Оцените статью
Adblock
detector