Как переименовать файл в Linux
Обновлено: 21.11.2024
Вы не знакомы с операционной системой Linux? В этом случае общие задачи, такие как переименование файлов и папок, могут отличаться от того, к чему вы привыкли. Но не волнуйтесь. Концепция переименования файлов в Linux аналогична тому, как это делается в других операционных системах.
В этом руководстве вы узнаете много способов переименования одного или нескольких файлов в Linux как с помощью графического интерфейса, так и с помощью команд в терминале.
Начнем!
Оглавление
Предпосылки
Чтобы следовать этому руководству, убедитесь, что у вас есть следующее:
- В этом руководстве используется Ubuntu 18.04 LTS, но другие дистрибутивы Linux будут работать.
- Учетная запись с доступом sudo/administrator.
Переименование файлов с помощью файлового менеджера
Если вы привыкли управлять файлами через графический интерфейс, давайте начнем с этого руководства, чтобы переименовать файлы с помощью файлового менеджера. Файловые менеджеры с графическим интерфейсом удобны тем, что вы можете видеть файлы на виду. Одним из таких файловых менеджеров, доступных в Linux, является бывший файловый менеджер GNOME, Nautilus. В этом руководстве демонстрируется переименование файлов с помощью файлового менеджера Nautilus.
Другими файловыми менеджерами Linux являются Konqueror, Dolphin, Krusader, Thunar, файловый менеджер Nemo и Sunflower файловый менеджер. Эти файловые менеджеры выполняют одну и ту же задачу, но переименование файлов или каталогов может немного отличаться.
Запустите терминал, затем выполните приведенную ниже команду, чтобы установить Nautilus ( install nautilus ) с менеджером пакетов apt, если он еще не установлен на вашем компьютере. Команда sudo повышает уровень команды с правами sudo/administrator.
Переименование отдельного файла
Для переименования отдельного файла в Nautilus требуется всего несколько щелчков мышью, как в проводнике Windows.
Чтобы переименовать один файл, откройте Nautilus, щелкните правой кнопкой мыши файл, который хотите переименовать, и выберите "Переименовать", как показано ниже.
В этом примере основное внимание уделяется переименованию файлов, но процесс одинаков для переименования как файлов, так и каталогов.
Переименование отдельного файла
Теперь введите новое имя файла, чтобы заменить исходное имя файла, нажмите Enter или нажмите «Переименовать», и все.
Ввод нового имени файла
Переименование нескольких файлов с помощью файлового менеджера Nautilus
Как и Windows, Ubuntu предоставляет больше возможностей для одновременного переименования нескольких файлов.
Чтобы переименовать несколько файлов, выберите все файлы, которые вы хотите переименовать, щелкните правой кнопкой мыши любой из них и выберите "Переименовать". Появится всплывающее окно, в котором вы можете выбрать, как вы хотите переименовать выбранные файлы.
Переименование нескольких файлов с помощью Nautilus.
Ниже есть два варианта на выбор в зависимости от того, как вы хотите переименовать выбранные файлы.
- Переименовывать с использованием шаблона. Это позволяет вам переименовывать файлы поэтапно.
- Найти и заменить текст — позволяет находить и заменять определенные тексты в именах файлов.
Переименование файлов с использованием шаблона
Чтобы переименовать файлы с использованием шаблона, выберите параметр "Переименовать с использованием шаблона".
Теперь введите имя замены в пустое поле, чтобы переименовать файлы с помощью шаблона, нажмите кнопку +Добавить и выберите один из шаблонов. Для этого руководства выберите первый (1,2,3,4) и нажмите «Переименовать». Эта опция добавляет увеличивающиеся номера к каждому файлу после замещающего имени файла (Text1, Text2,…).
Переименование файлов с помощью шаблона
Обратите внимание, что имена файлов изменились на текстовые, а затем увеличились числа.
Проверка имен файлов, измененных на «текстовые» с увеличением числа
Поиск и замена слов в именах файлов
Чтобы переименовать несколько файлов с определенным именем файла, выберите параметр «Найти и заменить текст».
Введите текст в поле «Существующий текст» и замещающий текст в поле «Заменить на», затем нажмите «Переименовать», чтобы заменить текст. Этот параметр находит и заменяет определенные тексты в именах файлов.
Замена текста в именах файлов
Теперь вы можете видеть ниже, что вы заменили слово "Текст" на "Файл" в каждом имени файла.
Проверка замены слова "Текст" словом "Файл" в каждом файле
Переименование файлов с помощью команды mv
Если вы предпочитаете выполнять команды вместо навигации в графическом интерфейсе, приготовьтесь научиться переименовывать файлы в терминале. Переименование файлов в терминале Linux аналогично переименованию в других средах командной строки, таких как PowerShell. Вы запускаете команды, чтобы переименовать исходное имя файла в имя целевого файла, и все.
Есть два сценария переименования файла. Первый — это переименование файла из рабочего каталога, а второй — указание полного пути. Взгляните на приведенный ниже синтаксис команды mv, чтобы переименовать файл, где источником является исходное имя, а местом назначения — замененное имя.
Переименование отдельного файла с помощью команды mv
Пока синтаксис команды mv еще свеж в вашей памяти, давайте попробуем переименовать один файл.
Чтобы продемонстрировать, как переименовать один файл и каталог:
<р>1. Запустите терминал, затем выполните приведенную ниже серию команд, чтобы создать каталог и два текстовых файла. <р>2. Затем запустите команду ls, чтобы получить список файлов в рабочем каталоге. Ниже вы можете видеть, что файлы file1.txt и file2.txt существуют в каталоге ~/test.
Список файлов в рабочем каталоге
<р>3. Запустите любую из приведенных ниже команд mv, чтобы переименовать файл1.txt в файл10.txt .<р>4. Наконец, повторно запустите команду ls, чтобы получить список файлов в рабочем каталоге.Переименование каталога аналогично переименованию файла, например: mv ~/test ~/demo . Символ ~ обозначает домашний каталог.
Ниже видно, что файл file1.txt теперь переименован в file10.txt.
Подтверждение переименования файла file1.txt в file10.txt
Переименование нескольких файлов с помощью цикла For
Если вы слишком заняты другими задачами и хотите переименовать все файлы за один раз, вам потребуется использовать оператор цикла for, как показано ниже.
Скопируйте приведенный ниже код как есть, вставьте его в терминал и нажмите Enter. Приведенный ниже код сканирует каждый текстовый файл в рабочем каталоге и переименовывает файлы с помощью «Файл», за которым следует возрастающий номер.
Вставка кода в терминал работает нормально, но рекомендуется вместо этого создать файл сценария для запуска.
Ниже вы можете увидеть, как код переименовывает все файлы в действии.
Переименование файлов в Linux с помощью утилиты переименования
Если вы ежедневно переименовываете один файл, команды mv будет достаточно. Но, возможно, вы хотите переименовать сразу несколько файлов с одинаковым шаблоном? Например, переименование файлов, начинающихся с определенного слова (файл). В этом случае вместо этого установите утилиту переименования.
Утилита rename переименовывает несколько файлов, изменяет форматы имен файлов и перезаписывает файлы.
Чтобы установить утилиту переименования, выполните любую из приведенных ниже команд в зависимости от того, с каким дистрибутивом Linux вы работаете.
Вы можете увидеть ниже синтаксис команды переименования.
Переименование нескольких файлов
С учетом синтаксиса команды rename теперь можно переименовывать файлы, имеющие один и тот же шаблон. Что хорошо в команде rename, так это то, что вам не нужно объявлять функцию цикла для переименования нескольких файлов, как вы делали это в разделе «Переименование нескольких файлов с помощью цикла For».
Возможно, вы хотите переименовать файлы с определенными словами. Если это так, взгляните на регулярное выражение Perl ( 's/file/myfile/' ) в примере команды ниже. Регулярные выражения Perl определяют шаблон строки на основе языка программирования Perl.
Чтобы избежать ошибочного переименования других файлов, перечислите все затронутые файлы, прежде чем переименовывать их, добавив параметр -n, как показано ниже.
Вывод списка затронутых файлов перед переименованием
Теперь запустите любую из приведенных ниже команд переименования, чтобы заменить файл слова на myfile в имени каждого текстового файла внутри рабочего каталога или файла ~/test/*.txt.
В выражении Perl ( 's/file/myfile/') буква s означает подстановку, что означает, что вы переименовываете файлы. Обратите внимание, что добавлена опция -v для возврата файлов, переименованных командой.
Ниже вы можете видеть, что каждое слово «файл» в текстовых файлах переименовано в «мой файл».
Переименование файлов с помощью команды rename
Если вместо этого вы предпочитаете переименовывать все файлы, удалите расширение файла при указании пути к файлу, например, переименуйте -v 's/file/myfile/' ~/test/* эм>
Изменение расширений файлов
Помимо имен файлов, команда rename также переименовывает расширения файлов. Возможно, вы создали файлы с неправильным расширением. В этом случае вы укажете расширение файла для изменения в выражении Perl при запуске команды переименования.
Выполните приведенную ниже команду rename, чтобы изменить расширение ( * ) всех файлов с .txt на .html в каталоге ~/test. Символ $ в выражении Perl соответствует концу строки ( .txt ) для каждого имени файла, поэтому команда изменяет только расширения файлов .txt. И, как и при переименовании нескольких файлов, добавьте параметр -v для вывода списка всех изменений, вносимых командой.
Чтобы вместо этого удалить все расширения файлов, удалите строку замены в выражении Perl, например: rename -v 's/.txt$//' *.txt
цитата>Как вы видите на изображении ниже, расширение .txt изменилось на .html
Изменение расширений файлов с .txt на .html
Изменение имен файлов на верхний и нижний регистр
Вместо неправильных расширений файлов вы можете иметь дело с именами файлов в нижнем регистре и наоборот. Возможно, вы пытаетесь найти файл именно в верхнем регистре, не зная, что имя файла написано в нижнем регистре.
Linux чувствителен к регистру, поэтому давайте удостоверимся, что у вас правильный регистр букв в каждом имени файла. Регистр букв — это в основном различие текстов между строчными и прописными буквами.
Выполните любую из приведенных ниже команд переименования, чтобы изменить все имена файлов в нижнем регистре ( a–z ) в рабочем каталоге ( * ) на прописные ( A–Z ) и наоборот.
Ниже вы можете увидеть оба результата изменения регистра букв в имени файла.
Изменение имени файла с нижнего регистра на верхний и наоборот
Замена и удаление пробелов в именах файлов
Как и в случае с регистром букв в имени файла, у вас могут возникнуть проблемы с поиском файлов, если в их именах есть пробелы. Давайте исправим это, либо заменив пробелы символом, либо полностью удалив пробелы.
Выполните приведенную ниже команду rename, чтобы заменить пробелы во всех именах файлов символом подчеркивания ( _ ) в рабочем каталоге. Поскольку подчеркивание является метасимволом, используйте обратную косую черту ( \\_ ), чтобы объявить подчеркивание буквально. Метасимволы — это специальные символы с особым значением в компьютерной программе.
Обратите внимание, что g в выражении Perl указывает команде заменить все совпадения (пробелы), а не только первое.
Ниже видно, что команда заменила все пробелы символами подчеркивания.
Замена пробелов символами подчеркивания в имени файла
Чтобы удалить все пробелы в имени файла вместо того, чтобы заполнять их символом, выполните приведенную ниже команду.
В приведенном ниже выражении Perl звездочка после пробела ( / * ) соответствует всем вхождениям пробелов в имени файла, а не только первому. Символ замены пустой ( // ), поэтому команда переименования удаляет все ( g ) пробелы.
Теперь вы можете видеть ниже, что все пробелы удалены из каждого имени файла.
Удаление всех пробелов в именах файлов
Заглавная буква каждого слова в имени файла
Если вы предпочитаете использовать пробелы и делать первую букву каждого слова в имени файла заглавной, вам потребуется более сложное выражение Perl. Взгляните на пример команды ниже.
Приведенное ниже выражение Perl соответствует любому одиночному символу ( \\w ) в границе слова ( \\b ), если этот символ не является ни точкой, ни апострофом ( ? ).Затем команда rename переведет эту букву в верхний регистр ( u$& ).
Ниже вы можете видеть, что каждое слово в именах файлов начинается с заглавной буквы, а расширения файлов остаются нетронутыми.
Использование первой буквы каждого слова в именах файлов с заглавной буквы
Заключение
Из этого руководства вы узнали множество способов переименования файлов Linux с помощью графического интерфейса и терминала командной строки. Теперь у вас есть четкое представление о том, как манипулировать именами для одного и нескольких файлов одновременно.
Почему бы не изучить сценарии оболочки Linux и не создать сценарий для автоматического переименования файлов в Linux?
Ненавидите рекламу? Хотите поддержать писателя? Получите многие из наших руководств в виде руководства по ATA.
Ещё от ATA Learning & Partners
Резервное копирование Office 365 для чайников
Лучшее руководство по защите данных Microsoft Office 365. Изучите готовые функции безопасности.
Руководства ATA
ATA известна своими высококачественными письменными учебными пособиями в виде сообщений в блогах. Поддержите ATA с помощью электронных книг ATA Guidebook PDF, доступных в автономном режиме и без рекламы!
Linux предоставляет несколько вариантов переименования файлов, включая использование графического интерфейса и нескольких специальных команд терминала. Это позволяет относительно легко переименовывать отдельные файлы, но может быть сложно переименовать сразу несколько файлов.
В этом руководстве мы рассмотрим различные команды, которые можно использовать в терминале Linux для переименования файлов в Linux.
- Система с дистрибутивом Linux
- Учетная запись с правами sudo
- Доступ к окну терминала/командной строке
- Доступ к текстовому редактору, например Vim или Nano
Переименовать файлы с помощью команды mv
Команда Linux mv (move) используется для перемещения файлов и каталогов из терминала. Он использует следующий синтаксис:
Если вы указываете каталог в качестве места назначения при использовании команды mv, исходный файл перемещается в этот каталог. Если назначением является другое имя файла, команда mv вместо этого переименовывает исходный файл в это имя.
Примечание. Узнайте больше об использовании команды mv в нашем руководстве по перемещению каталогов в Linux.
Переименовать отдельный файл с помощью команды mv
Использование команды mv с ее синтаксисом по умолчанию позволяет переименовать один файл:
Например, если мы хотим переименовать example1.txt в example2.txt, мы должны использовать:
Поскольку в случае успешного выполнения команды вывода нет, мы используем команду ls, чтобы проверить, изменилось ли имя:
Переименовать несколько файлов с помощью команды mv
Сама по себе команда mv переименовывает один файл. Однако в сочетании с другими командами вы можете переименовывать несколько файлов одновременно.
Один из способов заключается в использовании команды find для выбора нескольких файлов с похожим именем, а затем с помощью команды mv для их переименования:
Используя этот синтаксис, команда find определяет элемент текущего имени файла в качестве параметра поиска. Затем -exec выполняет команду mv для всех файлов, соответствующих условиям поиска, изменяя их текущие имена файлов на новые.
Например, если у нас есть example1.txt, example2.txt и example3.txt и мы хотим изменить расширение на < em>.pdf:
Еще один способ – использовать команду mv как часть цикла for в сценарии bash.
Используя тот же пример, начните с создания и открытия файла сценария bash с помощью текстового редактора, такого как Nano:
Добавьте в скрипт следующие строки:
В приведенном выше скрипте:
- Первая строка указывает сценарию искать все файлы в текущем каталоге, заканчивающиеся на .txt.
- Во второй строке используется команда mv для каждого найденного файла, чтобы заменить расширение .txt на .pdf.
- Третья строка завершает сегмент цикла.
Нажмите Ctrl+X, затем введите Y и нажмите Enter, чтобы сохранить изменения в скрипте и выйти.
Используйте команду sh для выполнения скрипта:
Примечание. Узнайте, как сравнить два файла с помощью команды diff.
Переименовать файл с помощью команды rename
Команда rename используется для переименования нескольких файлов или каталогов в Linux. Она предлагает больше возможностей, чем команда mv, но может быть более сложной в использовании, поскольку требует базовых знаний выражений Perl.
Как установить команду переименования
Во многих дистрибутивах Linux команда переименования по умолчанию недоступна. Если в вашей системе отсутствует команда переименования, установите ее с помощью:
- Для Ubuntu и Debian используйте sudo apt install rename
- Для CentOS и Fedora используйте sudo yum install prename
- Для Arch Linux используйте sudo pacman -S rename
переименовать синтаксис и параметры команды
Есть три типа регулярных выражений Perl: сопоставление, замена и перевод. Команда rename использует выражения замены и перевода для изменения имен файлов и каталогов.
Выражения замены заменяют часть имени файла другой строкой. Они используют следующий синтаксис:
При таком синтаксисе команда переименовывает файл, заменяя первое вхождение элемента имени файла заменой. В приведенной выше команде:
- rename : вызывает команду переименования.
- [options] : предоставляет необязательный аргумент, который изменяет способ выполнения команды.
- s : указывает замещающее выражение.
- [элемент имени файла]: указывает часть имени файла, которую вы хотите заменить.
- [replacement]: указывает замену части текущего имени файла.
- [имя_файла]: определяет файл, который вы хотите переименовать.
Выражение перевода переводит одну строку символов в другую, символ за символом. Этот тип выражения использует следующий синтаксис:
Пример команды переименования с использованием выражения перевода:
В этом примере каждый символ a в имени файла заменяется на x, каждый символ b на y и каждый символ c на z.
Команда rename использует следующие параметры:
- -a : заменяет все вхождения элемента имени файла, а не только первое.
- -f : принудительно перезаписывает существующие файлы.
- -h : отображает текст справки.
- -i : отображает запрос перед перезаписью существующих файлов.
- -l : заменяет последнее вхождение элемента имени файла вместо первого.
- -n : Выполняет пробный запуск без внесения постоянных изменений. Лучше всего сочетается с подробным выводом ( -v ).
- -s : переименовывает цель вместо символической ссылки.
- -v : показывает подробную версию вывода.
- -V : отображает версию команды.
переименовать примеры команд
<р>1. Изменить расширение файлаВозвращаясь к нашему последнему примеру, чтобы изменить расширение файла с .txt на .pdf, используйте:
<р>2. Замена части имени файла
Замена другой части имени файла осуществляется с использованием того же синтаксиса. Чтобы переименовать example1.txt, example2.txt и example3.txt в test1.txt, test2.txt и text3.txt используйте:
<р>3. Удалить часть имени файла
Опция переименования также позволяет удалить часть имени файла, опуская замещающую часть выражения. Например, если мы хотим сократить example до ex:
<р>4. Переименовать файлы с похожими именами
Другое использование параметра переименования — переименование файлов с похожими именами. Например, если мы хотим переименовать файлы с example и sample в имени на test:
<р>5. Переименовывать файлы посимвольно
Команда rename также позволяет использовать выражения перевода для посимвольного переименования файлов.Например, если вы хотите переименовать несколько файлов с именем example file, заменив пробел символом подчеркивания (_):
<р>6. Преобразование символов нижнего регистраЧтобы преобразовать символы нижнего регистра в именах файлов в символы верхнего регистра, используйте:
<р>7. Преобразование символов верхнего регистра
Обратное также работает, если мы поменяем порядок прописных и строчных символов в выражении:
Примечание. Будьте осторожны при изменении регистра символов, так как это также меняет расширение файла.
После прочтения этого руководства вы сможете переименовывать файлы с помощью команд mv и rename в Linux.
Терминал командной строки — важный инструмент для администрирования серверов Linux. Он предоставляет пользователям Linux одни из лучших инструментов повышения производительности, экономя при этом ресурсы вашего компьютера.
Чтобы эффективно использовать потенциал вашей ОС, вам необходимо хорошо знать основы — простые команды Linux, такие как переименование существующих файлов и папок. В этом руководстве вы узнаете, как переименовывать папки в Linux.
Как переименовать файлы в Linux с помощью команды mv
Команда mv, сокращенно от слова «перемещение», является одной из самых простых в использовании команд. Он может выполнять две основные, но важные задачи при работе с файлами в Linux. Один перемещает файлы из одного места в другое, а другой переименовывает один или несколько файлов через терминал.
Во-первых, давайте посмотрим, как переименование файлов с помощью mv работает в Linux.
Для начала мы получаем доступ к нашему серверу через командную строку, используя SSH. Если вы не уверены в SSH и хотели бы узнать больше, вот полезный учебник.
Чтобы получить доступ к нашему серверу, введите в терминал следующее:
Если мы используем локальный компьютер вместо сервера, то нам придется открыть терминал из главного меню.
После этого важно знать, как работает команда mv. Для этого мы запускаем следующее:
Как мы видим на предыдущем изображении, основное использование команды mv выглядит следующим образом:
Вот некоторые из самых популярных вариантов mv:
- -f — не показывать сообщение перед перезаписью файла.
- -i — отображает предупреждающие сообщения перед перезаписью файла.
- -u — перемещать файл только в том случае, если он новый или если он не существует в месте назначения.
- -v — показать, что делает команда.
[ИСТОЧНИК] — исходный пункт назначения файла
[DESTINATION] — каталог назначения.
Получите полный контроль с планами Hostinger VPS. 30-дневная гарантия возврата денег - без вопросов! Получите сегодня
Переименовать файл в Linux с помощью команды mv
Если мы хотим переименовать файл, мы можем сделать это следующим образом:
Предположим, что мы находимся в каталоге и есть файл с именем file1.txt, и мы хотим изменить имя на file2.txt. Нам нужно будет ввести следующее:
Так просто. Однако, если вы находитесь не в каталоге, вам нужно будет ввести еще немного. Например:
Переименовать несколько файлов с помощью команды mv
Команда mv может переименовывать только один файл, но ее можно использовать с другими командами для переименования нескольких файлов.
Давайте возьмем команды, циклы find, for или while и переименуем несколько файлов.
Например, при попытке изменить все файлы в текущем каталоге с расширения .txt на расширение .pdf вы будете использовать следующую команду:
Это создаст цикл (для) просмотра списка файлов с расширением .txt. Затем он заменит каждое расширение .txt на .pdf. Наконец, это завершит цикл (готово).
Если вам нужны более продвинутые функции, вам нужно будет использовать команду переименования, которую мы собираемся рассмотреть.
Переименовать файлы в Linux с помощью команды «Переименовать»
С командой переименования у вас будет немного больше контроля. Многие конфигурации Linux включают его по умолчанию. Но, если он у вас не установлен, вы можете сделать это всего за минуту с помощью простой команды.
Для Debian, Ubuntu, Linux Mint и их производных:
С другой стороны, если вы используете CentOS 7 или RHEL:
А если вы используете Arch Linux:
Теперь мы можем начать использовать команду переименования. В общем, основной синтаксис команды переименования выглядит следующим образом:
Сначала это может показаться сложным, но все намного проще, чем может показаться.
В этом примере мы создадим новую папку с именем filetorename и с помощью команды touch создадим 5 файлов.
С помощью последней команды ls вы можете просмотреть созданные вами файлы.
Если мы хотим переименовать один файл с именем file1.txt, предложение будет таким:
Если бы мы хотели изменить расширение у всех файлов, например, на .php. Мы могли бы сделать это следующим образом:
Мы также можем указать другой каталог, в котором находятся файлы, которые вы хотите переименовать.
Хотим отметить, что rename использует регулярное выражение Perl, а это означает, что эта команда имеет широкие возможности.
Наконец, рекомендуется проверить все параметры команды. Вы можете просмотреть их в терминале, выполнив:
- Преобразовать имена файлов в верхний регистр:
- Преобразование имен файлов в нижний регистр:
- Замените пробелы в именах файлов символами подчеркивания:
Удалить команду переименования
Если вы больше не хотите, чтобы программа rename была установлена в вашей системе, удалите ее с помощью диспетчера программного обеспечения. Или с терминала.
Для Debian, Ubuntu, Linux Mint и производных:
И для CentOS и RHEL:
Все, переименование удалено с вашего Linux-компьютера.
Заключение
Переименование файлов в Linux с помощью терминала — простая и практичная задача, но иногда очень важная. Знать, как это сделать, должен знать каждый администратор сервера.
Как мы видели, есть две команды, которые могут это сделать. Один проще другого, но оба выполняют задачу.
Мы рекомендуем вам продолжить изучение этих команд и улучшить качество вашего повседневного рабочего процесса.
Узнайте больше о командах Linux для управления файлами
Эдвард – редактор контента с многолетним опытом работы в сфере ИТ в качестве писателя, маркетолога и энтузиаста Linux. Цель Эдварда — побудить читателей создать впечатляющее присутствие в Интернете. Еще он очень любит собак, гитары и все, что связано с космосом.
Дэйв Маккей
Дэйв Маккей
Писатель
Джастин Дуино
Директор по обзорамДжастин Дуино (Justin Duino) — директор по обзору How-To Geek (и LifeSavvy Media в целом). Последнее десятилетие он писал об Android, смартфонах и других мобильных технологиях. Помимо своей письменной работы, он также был постоянным приглашенным комментатором на CBS News и BBC World News and Radio, чтобы обсуждать текущие события в технологической отрасли. Подробнее.
Познакомьтесь с мощной системой переименования файлов в мире Linux и дайте mv — и себе — отдохнуть. Переименование является гибким, быстрым, а иногда даже проще. Вот руководство по этой мощной команде.
Что не так с mv?
В mv нет ничего плохого. Команда отлично справляется со своей задачей и присутствует во всех дистрибутивах Linux, в macOS и других Unix-подобных операционных системах. Так что это всегда доступно. Но иногда нужен бульдозер, а не лопата.
Команда mv предназначена для перемещения файлов. Это приятный побочный эффект, который можно использовать для перемещения существующего файла в новый файл с новым именем. Чистый эффект заключается в переименовании файла, поэтому мы получаем то, что хотим. Но mv — это не специальный инструмент для переименования файлов.
Переименование отдельного файла с помощью mv
Чтобы использовать mv для переименования файла, введите mv , пробел, имя файла, пробел и новое имя, которое вы хотите присвоить файлу. Затем нажмите Enter.
Вы можете использовать ls, чтобы проверить, был ли файл переименован.
Переименование нескольких файлов с помощью mv
Все становится сложнее, когда вы хотите переименовать несколько файлов. mv не имеет возможности переименовывать несколько файлов. Вы должны прибегнуть к некоторым изящным приемам Bash. Это нормально, если вы разбираетесь в командной строке среднего уровня, но сложность переименования нескольких файлов с помощью mv резко контрастирует с простотой использования mv для переименования одного файла.
Все быстро обостряется.
Допустим, у нас есть каталог с множеством файлов разных типов. Некоторые из этих файлов имеют расширение «.prog». Мы хотим переименовать их в командной строке, чтобы они имели расширение «.prg».
Как заставить mv сделать это за нас? Давайте посмотрим на файлы.
Вот один из способов сделать это, не прибегая к написанию реального файла сценария Bash.
Это сработало? Давайте проверим файлы и посмотрим.
Так что да, это сработало. Теперь это все файлы «.prg», и в каталоге нет файлов «.prog».
Что только что произошло?
Что на самом деле делала эта длинная команда? Давайте разберемся.
Первая часть запускает цикл, который будет обрабатывать каждый файл «.prog» в каталоге по очереди.
В следующей части рассказывается, что будет делать обработка. Он использует mv для перемещения каждого файла в новый файл. Новый файл будет называться так же, как исходный файл, за исключением части «.prog». Вместо этого будет использоваться новое расширение «.prg».
Последняя часть завершает цикл после обработки каждого файла.
Должен быть более простой способ
Определенно. Это команда переименования.
rename не является частью стандартного дистрибутива Linux, поэтому его необходимо установить. Он также имеет разные названия в разных семействах Linux, но все они работают одинаково. Вам просто нужно заменить соответствующее имя команды в соответствии с используемой версией Linux.
в Ubuntu и производных от Debian дистрибутивах вы устанавливаете rename следующим образом:
В дистрибутивах, производных от Fedora и RedHat, вы устанавливаете prename следующим образом. Обратите внимание на начальную букву «p», которая означает Perl.
Чтобы установить его в Manjaro Linux, используйте следующую команду. Обратите внимание, что команда переименования называется perl-rename .
Попробуем еще раз
И на этот раз мы будем использовать rename . Мы вернем время назад, чтобы у нас был набор файлов «.prog».
Теперь давайте переименуем их с помощью следующей команды. Затем мы проверим с помощью ls, сработало ли это. Не забудьте заменить rename соответствующим именем команды для вашего Linux, если вы не используете Ubuntu или Linux, производный от Debian.
Это сработало, теперь все файлы «.prg», и в каталоге не осталось файлов «.prog».
Что случилось на этот раз?
Давайте объясним это волшебство в трех частях.
первая часть — это имя команды, rename (или prename или perl-rename для других дистрибутивов).
Последняя часть — это *.prog , которая указывает, что rename будет работать со всеми файлами «.prog».
средняя часть определяет работу, которую мы хотим выполнить над каждым именем файла. S означает замену. Первый термин ( .prog ) — это то, что rename будет искать в каждом имени файла, а второй термин ( .prg ) — это то, что будет заменено.
Средняя часть команды, или центральное выражение, представляет собой «регулярное выражение» Perl, и это то, что придает команде переименования гибкость.
Изменение других частей имени файла
На данный момент мы изменили расширения имен файлов, давайте изменим другие части имен файлов.
В каталоге много файлов с исходным кодом C. Все имена файлов имеют префикс «slang_». Мы можем проверить это с помощью ls .
Мы собираемся заменить все вхождения «slang_» на «sl_». Формат команды нам уже знаком. Мы просто меняем условие поиска, условие замены и тип файла.
На этот раз мы ищем файлы «.c» и ищем «slang_». Всякий раз, когда в имени файла встречается «сленг_», он заменяется на «sl_».
Мы можем проверить результат этой команды, повторив приведенную выше команду ls с теми же параметрами:
Удаление части имени файла
Мы можем удалить часть имени файла, заменив поисковый запрос ничем.
Из команды ls видно, что все наши файлы «.c» начинаются с «sl_». Давайте вообще избавимся от этого.
Команда rename имеет тот же формат, что и раньше. Мы будем искать файлы «.c». Критерий поиска — «sl_», но термина замены нет. Две обратные косые черты без чего-либо между ними ничего не значат, пустая строка.
rename будет обрабатывать каждый файл «.c» по очереди. Он будет искать «sl_» в имени файла. Если он будет найден, он ничем не будет заменен. Другими словами, поисковый запрос удаляется.
Второе использование команды ls подтверждает, что префикс «sl_» был удален из каждого файла «.c».
Ограничить изменение определенных частей имен файлов
Давайте воспользуемся ls для поиска файлов, в имени которых есть строка «param». Затем мы будем использовать переименование, чтобы заменить эту строку строкой «параметр». Мы воспользуемся командой ls еще раз, чтобы увидеть, как команда переименования повлияла на эти файлы.
Обнаружено четыре файла, в имени которых есть слово «param». param.c, param_one.c и param_two.c имеют «param» в начале своего имени. В файле Third_param.c в конце имени, непосредственно перед расширением, есть слово «param».
Команда rename будет искать «параметр» везде в имени файла и во всех случаях заменять его на «параметр».
Второе использование команды ls показывает нам, что именно это и произошло. Независимо от того, стоял ли «параметр» в начале или в конце имени файла, он был заменен на «параметр».
Мы можем использовать метасимволы Perl для уточнения поведения промежуточного выражения. Метасимволы — это символы, представляющие позиции или последовательности символов. Например, ^ означает «начало строки», $ означает «конец строки» и . означает любой одиночный символ (кроме символа новой строки).
Мы собираемся использовать метасимвол начала строки ( ^ ), чтобы ограничить наш поиск началом имен файлов.
В списке перечислены файлы, которые мы переименовали ранее, и мы видим, что строка «параметр» находится в начале трех имен файлов и в конце одного из имен файлов.
Наша команда rename использует метасимвол начала строки (^) перед поисковым термином «параметр». Это указывает rename считать найденным искомый термин только в том случае, если он находится в начале имени файла. Строка поиска «параметр» будет игнорироваться, если она находится где-то еще в имени файла.
Проверив с помощью ls , мы видим, что имя файла, у которого есть «параметр» в конце имени файла, не было изменено, но три имени файла, у которых есть «параметр» в конце В начале их имен строка поиска заменена замещающим термином «значение».
Сила переименования заключается в силе Perl. Вся мощь Perl в вашем распоряжении.
Поиск по группам
rename имеет в рукаве еще больше хитростей. Давайте рассмотрим случай, когда у вас могут быть файлы с похожими строками в именах. Это не совсем одинаковые строки, поэтому простой поиск и подстановка здесь не сработают.
В этом примере мы используем ls, чтобы проверить, какие у нас есть файлы, начинающиеся с «str». Их два, string.c и strangle.c. Мы можем переименовать обе строки одновременно, используя технику, называемую группировкой.
Основное выражение этой команды переименования будет искать строки в именах файлов, которые имеют последовательность символов «stri» или «stra», где за этими последовательностями сразу следует «ng». Другими словами, наш поисковый запрос будет искать «string» и «strang». Термин замены — «взрыв».
Использование ls во второй раз подтверждает, что string.c стал bang.c, а strangle.c теперь bangle.c.
Использование перевода с переименованием
Команда rename может выполнять действия с именами файлов, называемые переводами. Простым примером перевода может быть перевод набора имен файлов в верхний регистр.
В приведенной ниже команде переименования обратите внимание, что мы не используем s/ для начала центрального выражения, мы используем y/ . Это говорит о том, что при переименовании мы не выполняем подстановку; мы выполняем перевод.
Терм a-z — это выражение Perl, означающее все символы нижнего регистра в последовательности от a до z. Точно так же термин A-Z представляет все прописные буквы в последовательности от A до Z.
Основное выражение в этой команде можно перефразировать так: «если в имени файла встречаются строчные буквы от a до z, замените их соответствующими символами из последовательности заглавных букв от A до Z.”
Чтобы сделать имена всех файлов «.prg» прописными, используйте следующую команду:
переименовать ‘y/a-z/A-Z/’ в *.prg
Команда ls показывает нам, что все имена файлов «.prg» теперь в верхнем регистре. На самом деле, если быть строго точным, это уже не файлы «.prg». Это файлы «.PRG». Linux чувствителен к регистру.
Мы можем обратить эту последнюю команду, поменяв местами члены a-z и A-Z в центральном выражении.
переименовать ‘y/A-Z/a-z/’ в *.PRG
Вы (ни|ничего)не выучите Perl за пять минут
На знакомство с Perl потрачено время с пользой. Но чтобы начать использовать возможности команды rename, позволяющие экономить время, совсем не обязательно обладать большими познаниями в Perl, чтобы получить большие преимущества в мощности, простоте и времени.
Команды Linux Файлы tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm Процессы alias · screen · top · nice · renice · прогресс · strace · systemd · tmux · chsh · история · at · пакетное · бесплатное · которое · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · стена · yes · kill · спать · sudo · su · время · groupadd · usermod · группы · lshw · выключение · перезагрузка · halt · poweroff · passwd · lscpu · crontab · date · bg · fg < /tbody> Сеть netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · копать · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw
- › Худшее, что есть в телефонах Samsung, — это программное обеспечение Samsung.
- › Как установить Google Play Маркет в Windows 11
- › Что означает XD и как вы его используете?
- ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
- › Как восстановить метки панели задач в Windows 11
- › Почему прозрачные чехлы для телефонов желтеют?
Разработанная в начале 1990-х годов, Linux остается популярной операционной системой как для личного использования, так и для коммерческих серверов. Сегодня доступно более 600 дистрибутивов (версий) Linux, хотя лишь немногие из них до сих пор широко используются. Основанная на Unix система Linux ценится за ее портативность, надежность и стабильность. Многие люди (в основном профессионалы отрасли) предпочитают Linux любой другой операционной системе.
Тем не менее, для использования Linux требуются некоторые дополнительные знания. Хотя сегодня большинство дистрибутивов Linux имеют GUI (графический пользовательский интерфейс), многие его не имеют. Работа с Linux требует предварительных знаний, поскольку большинство команд задаются через текст командной строки.
Если вы работали в DOS или программировали на C, вы знаете, как пользоваться командной строкой. Но в Linux все дело в знании отдельных команд, включая команды для переименования и перемещения файлов.
Сегодня мы рассмотрим, как переименовать файл в Linux. Мы рассмотрим инструменты переименования, предлагаемые Linux, переименование одного файла, переименование файлов и каталогов, а также переименование нескольких файлов с помощью пакетного переименования.
Последнее обновление: март 2022 г.
Администрирование Linux (Ubuntu и CentOS) для начинающих. Получите навыки работы с Linux, чтобы повысить свою карьеру и продвинуться вперед. | Автор Андрей Думитреску, Академия Crystal Mind
Как переименовать один файл в Linux
Если нам нужно переименовать один файл в Linux, у нас есть два варианта: мы можем создать копию файла с новым именем (и удалить старое) или мы можем переименовать файл, переместив его (с команда МВ).
Переименование файла путем его копирования и удаления
Пользователи Linux копируют файл с помощью команды «cp». Когда вы копируете файл, вы передаете исходные файлы и переименовываете файлы.
Например, если бы мы переименовали «август.jpg» в «сентябрь.jpg»:
При этом будет создана копия файла с новым именем. Но теперь у вас будет две копии. Вы решите это, удалив старый файл. Вы удаляете с помощью «rm».
Вам может быть интересно, почему это так громоздко по сравнению с Windows, где вы просто переименовываете файл. Linux обладает большой властью, но он управляет этой силой, отдавая ее в руки пользователя. Пользователи Linux будут постепенно выполнять больше операций, но они полностью контролируют их выполнение.
Это уступает место другой проблеме: мы могли бы назвать этот второй файл september.jpg или september.doc. И тогда файл больше не будет работать! Linux предоставляет много возможностей и много свободы.
Переименование файла путем его перемещения
Возможно, вы с облегчением узнаете, что есть более простой метод. Но это нелогично. Вы можете переименовать файл, «переместив его» на новое имя файла.
Это на самом деле делает то, что вы бы назвали командой «переименовать», и делает это за один шаг. Но следует отметить, что это также и общая команда «движение». Таким образом, вы одновременно перемещаете файл. Если вы переместите его в другой каталог, он будет перемещен и переименован.
Как и в случае с командой cp, вы должны знать расширения файлов. Например, предположим, что мы допустили опечатку и набрали:
Это действие сломает наш файл.
Расширения файлов и переименование
В большинстве случаев Windows защищает вас от изменения расширения файла. Когда вы щелкаете файл в Windows, чтобы переименовать его, выделяется только фактическое имя, а не расширение. Вам нужно немного поработать, чтобы изменить расширение файла.
Linux не защищает вас. Расширение является частью имени файла и может быть изменено в любое время. По этой причине вы должны хорошо знать расширения файлов. .JPEG не обязательно совпадает с .JPG, даже если они оба обозначают файлы «JPG».
Если файл больше не работает после того, как вы его переместили, переименовали или скопировали, весьма вероятно, что это связано с ошибкой в расширении файла.
Как переименовать несколько файлов в Linux
Что делать, если вы хотите переименовать несколько файлов в Linux? Здесь мы начинаем видеть преимущества использования системы командной строки.
Допустим, мы допустили ошибку. Мы изменили все на JPG, но вместо этого они должны быть PNG. Мы можем сделать это так:
Для этого используется оператор подстановки (*) для выбора любого файла, оканчивающегося на JPG, и преобразования его в PNG. Однако нам лучше знать, что мы делаем, потому что если и существовали настоящие JPG, то сейчас они сломаны.
Подстановочные знаки — это одна из самых простых форм регулярных выражений. Если бы мы хотели переименовать файлы в Windows, нам пришлось бы нажимать на них один за другим. Чтобы переименовать файлы в Linux, мы можем просто использовать выражение, чтобы выделить их все. По этой причине опытные пользователи Linux могут выполнять операции очень быстро.
Переименование каталога в Linux
Одна из особенностей Linux и Unix заключается в том, что мало что меняется в зависимости от того, используете ли вы файлы или каталоги. Каталог — это более или менее пустой файл, содержащий другие файлы. Если бы у нас был каталог с названием «2021», и мы хотели бы переименовать его в «2022», мы бы сделали следующее:
Это так просто. Существующие каталоги обрабатываются командой MV как существующие файлы, не имеющие расширения файла.
Переименовать файл при перемещении в Linux
Ранее мы отмечали, что используем команду MV для переименования файлов и что мы также можем переместить файл в другой каталог, если захотим.
Теперь допустим, что мы хотим переименовать august.jpg в september.jpg, а также переместить его в каталог 2022.
И снова и каталог, и имя файла (и его расширение) являются просто указателями на то, где находятся данные. Это остается неизменным во всех версиях Linux.
Использование флагов (параметров) для ваших операций
Linux позволяет использовать так называемые «флаги» или параметры со своими командами. Это определяет, как выполняется команда.
Две команды, которые вам могут быть интересны, это -i и -v.
- -я. Это интерактивный вариант, который позволяет вам «прервать» последовательность действий для подтверждения действий.
- -в. Это подробный параметр, который позволяет вам видеть все, что происходит с командой, как это происходит.
Оба этих флажка могут быть полезны при использовании команды MV в Linux.
Использование функции интерактивного переименования в Linux
Мы несколько раз отмечали, что в Linux можно совершать серьезные, потенциально необратимые ошибки. Но есть и способ обойти это. Если вы добавите параметр «-i» к команде MV, вам будет выдан запрос, прежде чем что-либо будет сделано.
Допустим, мы вводим:
Но проблема в том, что мы уже создали september.jpg. Он уже существует! «Интерактивная» функция сообщит нам, что мы собираемся перезаписать существующий файл. Затем мы можем ввести «Y» или «N», чтобы либо подтвердить действие, либо отклонить его.
Если бы мы знали, что он все равно будет перезаписан, мы бы не возражали против этого. Но в противном случае мы могли бы захотеть узнать, что есть еще один файл в опасности.
Использование подробных сведений для отслеживания происходящего
Помимо интерактивного прерывания ваших команд, вы также можете просто знать, какие операции происходят. В Linux всегда можно использовать параметр -v или -verbose.
Это точно скажет вам, что он сделал с исходными файлами и новыми файлами. А еще вы можете:
Это сообщит вам обо всех операциях, а также позволит вам прервать их. Всякий раз, когда вы используете новую команду, рассмотрите возможность использования -v для подробного описания. Флаг -v должен работать практически для любой команды.
Массовое перемещение и переименование файлов в Linux
Иногда вам нужно переместить и переименовать большое количество файлов в Linux. Учтите, что у вас может быть целый каталог файлов, которые нужно либо изменить, либо переместить. Это могло произойти, если вы установили что-то не в тот каталог.
Для этого в Linux есть совсем другая команда: MMV. MMV можно использовать для перемещения, связывания и добавления файлов. Это неразрушающий метод; он попытается определить любые потенциальные ошибки или коллизии.
Это особенно ценно, потому что вы не хотите случайно испортить сразу много файлов.
Вышеописанное — это еще один способ изменить все PNG на JPG, если, например, у большого количества файлов неправильное расширение. Это могло произойти, если вы неправильно скопировали исходный файл.
Но вы заметите, что мы могли бы сделать это и с помощью команды MV. Единственная разница в том, что MMV — это более аккуратный способ сделать это.
Если вы хотите массово скопировать много файлов, вы можете скопировать даже весь каталог:
И это скопирует 2021 в 2022, оставив 2021. Копирование менее опасно, чем перемещение, потому что копирование по своей сути не удаляет исходные файлы. Перемещение делает. Это одна из причин, по которой при переименовании файла мы обращали внимание на функцию CP, а не на функцию MV — в этой операции меньше ошибок, поскольку она не является разрушительной по своей сути.
Установка rename в Linux
В этот момент вы можете подумать: "Почему я не могу просто переименовать?" На самом деле, вы можете. В Linux есть команда «переименовать», но ее нужно установить.
В вашей учетной записи администратора для Ubuntu или Debian:
Для Fedora или CentOS:
(Если у вас другой дистрибутив, посмотрите синтаксис установки.)
При этом будет установлен пакет «rename». После установки rename вы сможете использовать сложные регулярные выражения для переименования файлов.
Сложные регулярные выражения — отдельная тема. Мы видели, что * можно использовать в качестве подстановочного знака. Но с помощью регулярных выражений мы также можем выбирать такие вещи, как «любой файл, который начинается с букв, но заканчивается цифрами» или «любой файл, в котором есть 59». Регулярные выражения можно использовать для идентификации адресов электронной почты или других шаблонов — они очень эффективны, но требуют некоторой практики.
Команда rename мало чем отличается от MV, MVV или даже CP. Разница в том, что у вас будет специальная функция под названием «переименовать», которую вы можете использовать. Существует множество пакетов функций для различных дистрибутивов Linux, которые вы можете установить. Если вы пытаетесь выполнить операцию и не можете найти ее в ванильном Linux, рассмотрите возможность поиска пакета.
Начало работы с Linux
В Linux есть внутреннее руководство ($ man), которое можно использовать для поиска команд. Чтобы получить дополнительную информацию о команде перемещения в Linux, вы всегда можете ввести:
Или поищите что-нибудь еще в записи $ man.
Linux требует большого запоминания. По большей части вам просто нужно знать, что возможно в системе. Как только вы узнаете, что возможно, вы сможете обратиться к руководству, чтобы понять, как это сделать.
Но вы всегда должны помнить, что Linux делает то, что ему говорят — в системе Linux меньше мер безопасности. В то время как Windows может предупредить вас о том, что вы перезаписываете файл, Linux вряд ли предупредит вас, если вы специально не спросите об этом. Если вы только сейчас изучаете Linux, отличный способ сделать это — пройти учебный курс или семинар по Linux. Существует так много дистрибутивов Linux, что вы также захотите решить, какой дистрибутив вы хотите использовать в первую очередь. Ознакомьтесь с нашим руководством по поиску лучшего дистрибутива Linux!
Читайте также: